我用 C++ 编写了一个 DLL,但是即将把 DLL 提供给 C# 调用,因为 C++ 非托管代码的缘故,导致我不知道如何编写 C# 的导入接口,就是类似于 DllImport 那样,具体地说就是我不知道如何用 DllImport,函数的参数是 char、char *、xonst char *、int、自定义的结构体等,那么应该如何导入
我用 C++ 编写了一个 DLL,但是即将把 DLL 提供给 C# 调用,因为 C++ 非托管代码的缘故,导致我不知道如何编写 C# 的导入接口,就是类似于 DllImport 那样,具体地说就是我不知道如何用 DllImport,函数的参数是 char、char *、xonst char *、int、自定义的结构体等,那么应该如何导入
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
一般在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很多例子的。