首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 调用C++写的非托管DLL,该怎么处理

2014-01-03 
C# 调用C++写的非托管DLL1.接口函数所在动态库:LzCoUserClt4.dll。2.接口方法:extern C int __declspec(d

C# 调用C++写的非托管DLL
1.接口函数所在动态库:LzCoUserClt4.dll。
2.接口方法:extern "C" int __declspec(dllexport) _GetUserID(char* szUserID)
3.调用举例:

CString strFileNamePath = _T(“LzCoUserClt4.dll”);
HMODULEhLib = LoadLibrary(strFileNamePath);
typedef  int (*fun)(char*);
fun p = (fun)GetProcAddress(hLib,"_GetUserID");
if (p != NULL) 
{
char szUserID[512];
memset(szUserID, 0, 512);
p(szUserID);
}


只可惜我对C++一点也不懂,求大神给出在C#中调用这个dll中_GetUserID函数的代码

[解决办法]
[DllImport(@"../../**.dll")] 
提供出来的方法直接写在下面就好了 ,只能一直DllImport   DllImport
[解决办法]
char*最好用StringBuilder
[解决办法]
        [DllImport(@"C:\Program Files\LiZheng\LzCoPlatClt(x64)\LzCoUserClt4.dll")]
        public extern static int _GetUserID(string UserID);

方法名要一致

热点排行