最近做课题,需要用窗体调用C++的SDK开发包,引用了DLL之后,函数是可以调用了,但是里面宏定义的参数没有被定义。
比如:
[DllImport("HISDK.dll")]
static extern HI_S32 HI_SDK_Init();
上述的HI_S32显示未被定义。
我在开发包的一个C++的一个头文件中找到了 typedef int HI_S32;
再比如, HI_SDK_Init( )的返回值应该是HI_SUCCESS 或者 HI_ FAILURE 。
我的程序中的几行代码如下:
if (HI_SDK_Init() == HI_SUCCESS) MessageBox.Show("OK");
else MessageBox.Show("NO");
会出现错误“当前上下文中不存在HI_SUCCESS”。
我想问一下,在这个SDK开发包中,DLL文件里面都是不包含.h文件的吗。
我现在想把这个头文件引用到C#中,应该如何做呢?我在网上找到的方法是 同样将.h文件生成dll文件,然后引用。
但是我生成的dll文件里面没有函数,只有宏定义等等一些参数定义。我用C#调用我生成的DLL文件时就出现了错误:“错误 CS0601 必须在标记为 "static" 和 "extern" 的方法上指定 DllImport 特性 ”。
这个是SDK说明书里面给的。
不知道我有没有说清楚,希望大佬可以帮忙解决一下,谢谢。