有一个C++程序,我要在C#项目中调用C++程序中的DLL文件,下面是我做过的一些操作:
第一步:直接在.net中添加dll应用报错“找不到类型库” 第二步:用DOS注册DLL文件 regsvr32 报错“找不到指定的模块” 第三步:直接把DLL文件拷贝到windows/system32目录下,并且也拷贝到项目的bin目录中用,用代码 [DllImport("LedCtrl.dll")] // LedCtrl.dll C++程序中的dll文件 public static extern bool LSN_IsPower(); //LSN_IsPower c++程序中的一个方法 调用,程序运行报错 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)以上几种引用DLL文件的方法都试过了无效,请问大家有什么解决方案给个支持
写了一下代码用来打开DLL文件。。其它的DLL文件可以打开。。就是不能打开LedCtrl.dll ///<summary>
/// API LoadLibrary
///</summary>
[DllImport("Kernel32")]
public static extern int LoadLibrary(String funcname); ///<summary>
/// API GetProcAddress
///</summary>
[DllImport("Kernel32")]
public static extern int GetProcAddress(int handle, String funcname); ///<summary>
/// API FreeLibrary
///</summary>
[DllImport("Kernel32")]
public static extern int FreeLibrary(int handle);
这是C++中源码的调用DLL
int dllint= LoadLibrary("LedCtrl.dll");
if (!dllint)
{
dllint= LoadLibrary("..\\LedCtrl.dll");
return false;
}
大家帮忙看看。。用什么方式能够在C#中调用C++的DLL文件
谢谢!
解决方案 »
- c# 事务
- 网站的权限设置错误
- c#编程问题(对象名无效)
- 移动控件闪的历害,看到别人讲的又别用
- 怎么把应用程序部署成绿色软件??
- OS是MOBILE5。0 的PDA 上 用 vs2005 c# 开发 应用 请问如何 和 ORACLE 10g 数据库交互
- 急求解答
- 如何在web窗体中使用图标,图片资源?
- 100分求助,请问哪有《C# Primer》,《C#技术内幕》和<<突破C#编程50例>>的电子版图书下载
- .net core 使用 Microsoft.Office.Interop.Excel 转换成PDF COM 组件报错。
- 登陆窗口功能实现,提问,谢谢
- C#读取MFC CArchive类写入的二进制流数据中的中文字符出错,求指导.
解决办法是把跟dll有关的文件全部放在bin目录下 然后Import
找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
1、“直接在.net中添加dll应用报错“找不到类型库””
C++的动态库不能直接添加到net工程里。
2、“用DOS注册DLL文件 regsvr32 报错“找不到指定的模块””
你些的是动态库,而非COM组件,所以不能注册。
3、“调用,程序运行报错 找不到指定的模块”
这类问题,一般是由于你的动态库,还依赖别的动态库,用VC的DEPENDS.EXE工具打开一看就能知道。