日期:2014-05-17  浏览次数:20858 次

C# 调用C++写的非托管DLL
1. 接口函数所在动态库:LzCoUserClt4.dll。
2. 接口方法:extern "C" int __declspec(dllexport) _GetUserID(char* szUserID)
3. 调用举例:
CString strFileNamePath = _T(“LzCoUserClt4.dll”);
HMODULE hLib = 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);

方法名要一致