C#调用DLL常见问题

目录

一、C#无法添加引用MFC dll ?

二、引用的MFC dll报找不到指定的模块,在代码目录和debug目录下都放了该dll也不行?

三、MFC dll调用C#应用程序调试,dll无法调试

四、C#引用一个委托DLL失败,表示可能缺乏依赖库?


前言:原想用MFC开发窗口应用程序,但VC的窗口设计太烂了不好用,所以想到用C#开发窗口程序,把原先的MFC代码制作成DLL,用C#窗口程序调用MFC的DLL完成项目开发。但这过程中遇到了很多问题,因此记录一下

一、C#无法添加引用MFC dll ?

背景:开发C#窗口程序在解决方案窗口有个引用路径,想着引用我的MFC dll却报一下错误

解决:C#添加引用的类库需要这个Dll本身是.net的程序集,或者是一个COM组件才能正常引用,其他类型的DLL直接使用DllImport导入函数调用就行,记得把该DLL放到Debug或Release目录下

现象:

二、引用的MFC dll报找不到指定的模块,在代码目录和debug目录下都放了该dll也不行?

现象:

解决:网上都说把引用的dll放到debug目录下,其实还应该注意是要放到你当前编译平台下的调试目录下才之前。我调试的平台选的是x86,所以引用的dll要放到x86目录下的debug目录下才行。(该问题产生的准确原因其实是我们没弄清楚我们调试运行时的exe程序是在哪个目录下,当exe程序引用dll时,在该目录下没找到该dll所以就报错了)

三、MFC dll调用C#应用程序调试,dll无法调试

背景:原想用MFC开发窗口应用程序,但VC的窗口设计太烂了不好用,所以想到用C#开发窗口程序,把原先的MFC代码制作成DLL,用C#窗口程序调用MFC的DLL完成项目开发。但想调试DLL却发现调试不了

解决:MFC dll生成Debug版本复制放到C#应用程序目录下的exe层即可(该问题产生的原因其实和上面的问题一样,是自己把dll添加错路径了,未放到运行时的exe同级目录下)

四、C#引用一个委托DLL失败,表示可能缺乏依赖库?

解决:我引用的这个DLL是包含了nupkg包的,不能像平常的DLL直接引用,还需要安装该nupkg和他的依赖nupkg包,通过下面网站方法安装nupkg包;安装失败会如下图告知缺乏什么依赖包,去复制到工程目录里即可,他会自动搜索引用

安装nupkg包方法:https://blog.csdn.net/linjf520/article/details/79585081

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值