C#程序调用一个C++写的封装好的dll文件,在有些电脑上运行正常,在有些电脑上就显示无法加载该dll文件。

网上有人说是dll依赖其他dll的原因,但是用depends工具检查之后发现没有缺少的dll文件。不能运行的电脑是win7系统的,可能是跟这个有关系吗?

肯定是缺少dll的问题,因为windows的crt库,虽然文件名一样,但是有多个版本的。你把给你编译的那个人的vcredist_x86.exe的安装包拿到这台机子上安装.或者他编译dll的时候,链接静态库也行
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-08
可能是win7的安全机制限制。这要看DLL操作什么资源来做进一步分析。

C#程序调用一个C++写的封装好的dll文件,在有些电脑上运行正常,在有些电...
肯定是缺少dll的问题,因为windows的crt库,虽然文件名一样,但是有多个版本的。你把给你编译的那个人的vcredist_x86.exe的安装包拿到这台机子上安装.或者他编译dll的时候,链接静态库也行

用C#写了个窗体程序,调用C++类库的(dll),本机正常,换其他电脑就不行了...
路径问题,检查一下你代码指定的路径是不是动态路径。下面是我利用反射调用控件的例子,可以给你参考一下 string strFileName=System.AppDomain.CurrentDomain.BaseDirectory.ToString() + "WZControls\\\\" + dllName + ".dll";\/\/加载控件 Assembly assembly = Assembly.LoadFrom(strFileName);\/\/获得类(...

C++封装的dll,char类型的出参C#中如何接收
StringBuilder sb = new StringBuilder(16); \/\/ 16替换为你所需要的容量,也就是先申请好内存空间 再调用该函数,传入本参数

如何在C#中调试C++写的DLL代码
1.将DLL源码工程项目加入目前用到的C#工程的解决方案中。2.设置DLL工程的生成模式为Debug,Debug模式下会生成pdb调试文件。3.设置C#工程的生成模式为Debug,否则无法命中DLL源码中的断点。4.由于DLL工程是独立的,所以将DLL工程生成的dll文件以及pdb文件拷入C#工程的Debug输出目录下。5.设置断点,开始调试。

c#调用c++写的dll,用dllimport后说什么 找不到指定模块。这个问题你是...
朋友,你在你的电脑的系统盘(以c盘为例)C:\\WINDOWS\\SYSTEM32\\DEPENDS.EXE,找到这个应用程序,然后将你的c++写的dll拖到这个程序上(也就是用这个程序将你的dll打开),可以看到dll里面的结构,看左边的一个区域,就是树形列表,中有没有出现黄色的或者红色的项,如果有,说明你的dll缺少依赖项,...

c#调用C、C++编写的dll
\/\/ cmdll.c \/\/ compile with: \/LD int __declspec(dllexport) SampleMethod(int i){ return i*10;} 该示例使用两个文件 CM.cs 和 Cmdll.c 来说明 extern。C 文件是示例 2 中创建的外部 DLL,它从 C# 程序内调用。\/\/ cm.cs using System;using System.Runtime.InteropServices;public ...

C++如何调用C#窗体封装的dll
控制台调用窗体不是这么用的。第一个窗体要用Application::Run打开 [STAThreadAttribute]int main(array<System::String ^> ^args){ Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); Application::Run(gcnew ClassDlg()); return 0;} ...

C#调用外部的dll,运行一段时间就会提示内存方面的错误(如下图)!程 ...
由于是调用已经写好的dll,所以只能在该dll外加壳后,使用Process类调用才能捕获到从dll内部引发的异常。

C#调用C++生成的DLL文件会影响C++程序的执行效率吗?
你好!c#走的是.net体系托管程序,c++的dll动态库更为直接,c#调用c++写的dll不失为提高效率的做法。但个人认为应该尽量减少调用的次数,可以在c++动态库中完成较大工作量的工作,减少互相的通信和反复数据交换,因此把工作量较大和运算时间和逻辑复杂的封装在dll内部,将结果以简单的形式返回到调用的c#...

C#调用C++生成的DLL文件会影响C++程序的执行效率吗??
c#走的是.net体系托管程序,c++的dll动态库更为直接,c#调用c++写的dll不失为提高效率的做法。但有认为应该尽量减少调用的次数,可以在c++动态库中完成较大工作量的工作,减少互相的通信和反复数据交换,因此把工作量较大和运算时间和逻辑复杂的封装在dll内部,将结果以简单的形式返回到调用的c#中,这样...

相似回答