C# 调用C++ dll 的坑

遇到一个很奇葩的坑,耗费了我大半天的时间,现将问题和解决办法记录如下。

问题描述:

同样的代码在测试程序中可以运行,我集成到框架中去之后就无法使用,提示【无法在 DLL“rtlsdr”中找到名为“rtlsdr_get_device_count”的入口点】
在框架中设置了私有路径,如果路径设置正确,则我的模块初始化失败,如果没有设置私有路径,则我的模块可以初始化,但是调用C++的库会失败,提示的错误如上所述。
最奇葩的地方在于用VS调试时,如果私有路径设置正确,那我的模块都加载不进框架;如果不正确,则可以进入我的模块,但是调用C++会失败。

解决办法:

在调用C++库的时候,在库名称中加上相对路径,这样才能调用成功。 找到这个解决办法让我走了不少弯路,最初怀疑是框架的影响,或者路径不对,但我把需要调用的dll文件都放到运行程序根目录还是没成功。
实在没有办法了,我才想到加个相对路径试试,结果居然可以成功调用了。我C

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 乘白冯冬,笑我虚晨。唤陌客各自详陈,今宵酒闷,昨日风频。又人行慢、天行晚、雪行春。 一钧弹发,千般纷扰。遣庄生倒挂...
    飞廊阅读 1,716评论 4 5
  • 如果对付狼,我们可以制造一个特别的圈,把一个小圈套在一个大圈中,把羊放在小圈中,狼一但闻到猎物的气味,就会进来,它...
    宛长睿阅读 1,306评论 0 4
  • 当找到一个地方发泄时,人才不会无聊,说白了就是心理寄托,每个人都有自己发泄的方式。 你发泄的地方对你有无益处,是否...
    赛脑阅读 3,493评论 0 0
  • 一盏烛火的摇曳, 浪漫如蛛网延伸, 葡萄酒藏不住, 是暗红的甜蜜, 玫瑰花斜倚着芬芳, 幽禁蚕食的落霞; 我爱过你...
    挑灯者阅读 1,430评论 0 4