关于调用C的动态链接库的问题(较难,老鸟不妨也进来看看)
Dll 中函数的原型
int iaTrapSend(const char* psEnterpriseOID, int iGerneric, int iSepecific,
STUPARAM *pTrapParam, int iCount);
其中STUPARAM 定义如下
结构类型STUPARAM定义为:
typedef struct
{
char m_szParamName[256]; //参数名
char m_szInstance[256];//参数事例号
unsigned char m_ucType;//参数类型
unsigned short m_usVLen;//参数长度
unsigned char m_szValue[256];//参数值
unsigned short m_usError;//读写参数时的错误信息
}STUPARAM
我的代码如下:
[StructLayout(LayoutKind.Sequential)]
public struct STUPARAM
{
public char[] m_szParamName; //参数名
public char[] m_szInstance; //参数事例号
public char m_ucType; //参数类型
public ushort m_usVLen; //参数长度
public char[] m_szValue;//参数值
public ushort m_usError; //读写参数时的错误信息
}
public static extern int iaTrapSend(string psEnterpriseOID, int iGerneric, int iSepecific,
ref STUPARAM[] pTrapParam, int iCount);
但是每次调用都不成功,我单独写了一个类似的东西来测试发现应该是STUPARAM类型转换的问题,不知道哪位有办法??
相关推荐
在C语言中调用C++做的动态链接库
今天在做东西的时候遇到一个问题,就是如何在C语言中调用C++做的动态链接库so文件 如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明, 那么你如何用c调用呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定. 链接库头文件: head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; firstso.cpp #include #include head.h A::A(){}
GCC 编译 C(C++)静态链接库(gcc -L、gcc -l)和动态链接库
gcc -fpic -shared 源文件名…ar rcs 静态链接库名称 目标文件1 目标文件2 …
Python调用C/C++动态链接库的方法详解
本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef EXPORT_HELLO_DLL #define HELLO_API __declspec(dllexport) #else #define HELLO_API __declspec(dllimport) #endif extern "C" { HELLO_API int IntAdd(int , int); } CPP文件: //hello.cpp #define EXPORT_HELLO
java调用C的动态链接库
经过网上查找的资料和实践,可以在java界面中点击按钮调用C的程序将结果显示到java的文本框中,里面有代码和步骤,祝你成功~~
VS2019开发简单的C/C++动态链接库并进行调用的实现
主要介绍了VS2019开发简单的C/C++动态链接库并进行调用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


