动态调用dll有关问题,GetProcAddress返回0,GetLastError返回127,求指教

动态调用dll问题,GetProcAddress返回0,GetLastError返回127,求指教
本帖最后由 CKRGD 于 2015-11-12 09:03:09 编辑

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有关问题,GetProcAddress返回0,GetLastError返回127,求指教
不能确定函数名是否正确,但是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
------解决思路----------------------
 

引用:
Quote: 引用:

http://blog.sina.com.cn/s/blog_5920510a01018a96.html

但是你得知道C# dll的组织结构啊,包括namespace、class等等
我根据这个方法写了代码,调试遇到这个问题
动态调用dll有关问题,GetProcAddress返回0,GetLastError返回127,求指教
请大神看下,这是为什么


那个右下角的错误提示已经很清楚了啊,C# dll比当前开发环境要新,类似于你用VS2008创建的工程,用VS2005是无法打开的