C++DLL调用C#Dll问题

wangmuxin88 2015-09-21 03:51:43
各位大神好。目前碰到个问题,C++DLL调用C#DLL失败。报异常信息:System.IO.FileNotFoundException: 未能加载文件或程序集“ManagedCSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。文件名:“ManagedCSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”


C#DLL里执行了一些算法,并最后输出一个int值。C++DLL通过这个值来进行判断。 上层然间直接加载C++DLL来进行操作。
现在实验下来C++做的exe可以调用成功,但是dll就是不行,请大神指教。
...全文
413 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tidal_Choidi 2015-11-19
  • 打赏
  • 举报
回复
之前我也遇到过楼主类似的问题,最后以费了老劲也没成功,最后的最后我的解决办法好像是使用了------>匿名/命名管道来解决的问题。 不知道这个思路是否适合楼主的这种情况~
Saleayas 2015-10-20
  • 打赏
  • 举报
回复
C# 的依赖项不存在,或者加载不上。查看你的依赖项是否都在托管的 DLL 的目录。 把所有的 DLL,包括 托管的 DLL 都放到系统目录,或者 可执行文件的目录。
  • 打赏
  • 举报
回复
dll放的目录不对吧,都放到一个目录下
YOKIGORE 2015-10-17
  • 打赏
  • 举报
回复
第一抛弃托管C++, 这个是阉割的东西,一定要做.net, 则C# 2: 建议参考 C++/.net: com interoperation这样的书籍和MSDN文献。 就是用他们暴露的COM来打通, 比如你这个就可以考虑双接口,或者自动化借口来打通九号。 3: 你选择互操作是语言层面的,最好也要考虑到逻辑上,业务上的分割。让他们耦合减少!
wangmuxin88 2015-09-21
  • 打赏
  • 举报
回复
老说有敏感词汇。。晕。 EXE调用方法附上 #using "D:\\ManagedCSharp.dll" #using <mscorlib.dll> int GetAuth() { ManagedCSharp::ManagedClass ^c = gcnew ManagedCSharp::ManagedClass(); System::Object ^result = c->ShowValue(); return System::Convert::ToInt32(result); } int _tmain(int argc, _TCHAR* argv[]) { if (GetAuth() != 2) { AfxMessageBox(_T("1234")); } return 0; }
wangmuxin88 2015-09-21
  • 打赏
  • 举报
回复
各位大神好。目前碰到个问题,C++的DLL调用C#的Dll调用不到。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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