无法加载 DLL 找不到指定的模块

kingofchangsha 2009-04-28 08:24:50
产生的错误如下所示:
System.DllNotFoundException: 无法加载 DLL“PsSDK.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。

我把相关的dll拷贝到bin目录,system32目录,windows目录,exe所在的目录……都不管用,因此,我感觉不是dll的放置问题。
另外,我照着msdn写了个dll,然后在程序中使用,结果是可以的。

dll是厂家用c++写的,在c++中调用也是可以的,这是怎么回事儿呢?望高人解答。
...全文
5080 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingofchangsha 2009-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jingshuaizh 的回复:]
如果是非托管的,就用DllImport,举例
using System;
using System.Runtime.InteropServices;
class MainApp
[DllImport("Kernel32")]                    //读取动态库文件
public static extern int GetProcAddress(int handle, String funcname);

给你讲一下我的经验:
首先 你在C#中调用的 是C++ 写的一个动态库。比如Kernel32.dll 中的 函数;
这个函数用C++写 有如下要求:
1、 必须为全局函数
2、 函数参数 必…
[/Quote]
谢谢你,详细,细致的回答,问题解决了。
bluebrother 2009-04-28
  • 打赏
  • 举报
回复
up楼上
蓝海D鱼 2009-04-28
  • 打赏
  • 举报
回复
如果是非托管的,就用DllImport,举例
using System;
using System.Runtime.InteropServices;
class MainApp
[DllImport("Kernel32")] //读取动态库文件
public static extern int GetProcAddress(int handle, String funcname);

给你讲一下我的经验:
首先 你在C#中调用的 是C++ 写的一个动态库。比如Kernel32.dll 中的 函数;
这个函数用C++写 有如下要求:
1、 必须为全局函数
2、 函数参数 必须为基本类型,也就是C++ 和C#都有的类型,否则你在public static extern int GetProcAddress(int handle, String funcname);
这里没有办法声明。 其余的 没什么了;

还有你可以参考这里:http://blog.csdn.net/jingshuaizh/archive/2009/02/04/3862019.aspx

先前用VC写的程序生成的DLL,C#里能够调用么?
可以的话,在VC里传入参数为CString,而C#里是string,怎么传参数呢?

再者就是问,用VC写的DLL如果是一个导出类,而不是函数接口,C#里可以直接调用么?
第一个问题我遇到过, 可用如下方法解决:

VC++ 中为: int Set(char** str,int n); //将 String 改成 char** , C# 中没有与String对应的类型
C# 中为: int Set(ref string str,int n);

VC++ 中的 BOOL 类型对应 C# 中的 System.Int32 类型, 建议改动一下参数类型吧.

第二个问题,生成的DLL里的函数在一个类里面,这样的话在C#里需要实例化那个类么?怎么做
比如说,类solution里有函数int getch(int a);
我怎么调用这个getch函数??

建议在C++中另外写个函数封装一下, 如:
int Dllgetch(int a)
{
solution st = //实例化 类solution
return st.getch(a);
}
这个 Dllgetch(int a) 就可以提取出来供 C# 调用.
你的方法可以,我也解决了
将CString 改成了LPCTSTR
BOOL在C#中对应的是Boolean
kingtiy 2009-04-28
  • 打赏
  • 举报
回复
添加引用,找到dll路径

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧