C# 调用 C++ DLL,DllImport

我用 C++ 编写了一个 DLL,但是即将把 DLL 提供给 C# 调用,因为 C++ 非托管代码的缘故,导致我不知道如何编写 C# 的导入接口,就是类似于 DllImport 那样,具体地说就是我不知道如何用 DllImport,函数的参数是 char、char *、xonst char *、int、自定义的结构体等,那么应该如何导入

阅读 7.4k
1 个回答

一般在dll里面函数 用dllexport 类型对应就行,比如 int 对应Int32 char*对于String
BSTR --------- StringBuilder

LPCTSTR --------- StringBuilder

LPCWSTR --------- IntPtr

handle---------IntPtr

hwnd-----------IntPtr

char *----------string

int * -----------ref int

int &-----------ref int

void *----------IntPtr

结构体在C#里面重新定义。
C++ 中一般用 WINAPI,

__declspec(dllexport) int WINAPI fun(int x){return x;}
然后DllImport就行,P/Invoke很多例子的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题