高分求教:.net调用C++DLL问题!会的请进来帮忙!
我现在在做一个BS系统。需要用.net(C#)调用一个C++的消息队列的DLL。
网上的方法我都试过了。但是还是老报错。
我的方法是:
我因为测试调用C++Dll专门建了个小项目(新建网站)
我将C++的DLL放到了bin目录下,同时也放到了system32目录下一份。
然后我在App_Code目录下建了个SysClass.cs的公共类,内容如下:
public class SysClass
{
public SysClass()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
[DllImport( "MQClient.dll ", EntryPoint = "MQInit ", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern bool MQInit(string szSerialNo);
}
然后再网页Default.aspx.cs中调用
string szSerialNo = "common ";
SysClass.MQInit(szSerialNo);
但是老报错如下:
无法加载 DLL“MQClient.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
请问:为什么会加载不上???
------解决方案--------------------App_Code下放dll试试
------解决方案--------------------MQClient.dll用工具看看,函数名和参数。
软件名:depends.exe
------解决方案--------------------放在app_code下就行吧
------解决方案--------------------先注册一下MQClient.dll
------解决方案--------------------可能是由于你的DLL是非托管的,前几天我也遇到这个问题,这里有个完美解决方案,楼主参考
http://mscenter.edu.cn/blog/gxisone/archive/2007/01/03/117877.html
------解决方案--------------------philoo(小毛驴尥蹶子) ( ) 信誉:100 Blog 加为好友 2007-04-26 17:07:06 得分: 0
可能是由于你的DLL是非托管的,
这……肯定是非托管的。