动态调用dll有关问题,GetProcAddress返回0,GetLastError返回127,求指教
动态调用dll问题,GetProcAddress返回0,GetLastError返回127,求指教
先看代码 GetLastError 127
网上很多这个问题,但解决方案都适合我
Depends工具看不到dll的导出函数如图

不能确定函数名是否正确,但是dll不是我写的,dll是c#,不知道能不能加extern "C",c#有没有lib文件和.h文件?
如果不能,还有没有别的办法,或者我的代码有问题
不知道考虑到c++重载机制,c++该怎么调用c#写的dll
------解决思路----------------------
MSCOREE 是托管版的。
不能这样导出。
创建一个托管版的 C++/CLI 项目,添加引用,直接使用。
------解决思路----------------------
这个DLL是.NET Framework4.0写的,你的调用程序至少也要支持.NET Framework4.0,
你的Visual Studio是哪个版本,据我所知,至少要VS2010才.NET 4.0
------解决思路----------------------
那个右下角的错误提示已经很清楚了啊,C# dll比当前开发环境要新,类似于你用VS2008创建的工程,用VS2005是无法打开的
BOOL act_icuser()
{
hModule = LoadLibrary("SM1_Encrypt.dll");
card_act = (PCardActivate)GetProcAddress(hModule, "CardActivate");
if(NULL == card_act)
{
char msg[256];
sprintf(msg, "获取CardActivate失败:%d", GetLastError());
MessageBoxA(NULL, msg, "caption", 0);
return false;
}
return card_act();
}
先看代码 GetLastError 127
网上很多这个问题,但解决方案都适合我
Depends工具看不到dll的导出函数如图
不能确定函数名是否正确,但是dll不是我写的,dll是c#,不知道能不能加extern "C",c#有没有lib文件和.h文件?
如果不能,还有没有别的办法,或者我的代码有问题
不知道考虑到c++重载机制,c++该怎么调用c#写的dll
------解决思路----------------------
MSCOREE 是托管版的。
不能这样导出。
创建一个托管版的 C++/CLI 项目,添加引用,直接使用。
------解决思路----------------------
这个DLL是.NET Framework4.0写的,你的调用程序至少也要支持.NET Framework4.0,
你的Visual Studio是哪个版本,据我所知,至少要VS2010才.NET 4.0
------解决思路----------------------
那个右下角的错误提示已经很清楚了啊,C# dll比当前开发环境要新,类似于你用VS2008创建的工程,用VS2005是无法打开的