weixin_44403218 2024-06-25 11:13 采纳率: 0%
浏览 16
已结题

MFC引用C#生成的dll,将dll放置到非exe程序目录,如何操作

** MFC引用C#生成的dll,将dll放置到非exe程序目录,如何操作**

目前的状况是:
1---MFC引用C#生成的dll,MFC引用dll时 选择复制到本地。运行 OK 用到dll 相关变量时OK。
2---MFC引用C#生成的dll,MFC引用dll时,选择不复制到本地。然后把dll 放到指定的目录,运行 生成的程序,运行OK,用到dll 相关变量时出错。
具体为:使用按钮 调用DLL 相关变量时 出现报错(System.IO.FileNotFoundException:“未能加载文件或程序集“MFCDLLTEST2, Version=22.22.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文)。

img

需求是:MFC引用C#生成的dll,将dll放置到非exe程序目录 能够正常使用

当前测试过几个方案都不行。
A---修改环境变量,将dll 放到环境变量路径下。
B---将dll 放到System32路径下.
C---右击项目属性-->调试-->环境。设置 PATH=F:\test_out_file_dll;%PATH%

有遇到过以上问题的专家吗,帮小的 出出主意 感谢感谢

  • 写回答

26条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-25 11:13
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    这个问题涉及到MFC与C#之间的跨语言互操作性以及路径解析的问题。首先,我们需要明确的是,在Windows环境下,dll文件通常位于%ProgramFiles%\Microsoft Visual Studio\Shared目录下,除非您是在创建一个新的Visual Studio解决方案时手动指定了一个不同的路径。

    在解决此问题之前,我们先分析一下可能的原因:

    1. mfcdlltest2.dll是否真的存在于%ProgramFiles%\Microsoft Visual Studio\Shared目录下?如果不是,那么这个文件实际上是一个外部依赖项,而不是MFC的动态链接库。
    2. 环境变量中的PATH值是否正确指定了正确的路径?

    让我们一步步解决这个问题:

    步骤 1: 检查文件是否存在

    首先,确认mfcdlltest2.dll确实存在,并且位于%ProgramFiles%\Microsoft Visual Studio\Shared目录下。

    dir %ProgramFiles%\Microsoft Visual Studio\Shared\mfcdlltest2.dll
    

    如果不存在,尝试通过其他方式查找或下载文件。

    步骤 2: 设置环境变量

    检查您的PATH值是否包含了%ProgramFiles%\Microsoft Visual Studio\Shared这个目录。如果没有,您可以添加它:

    setx PATH "%ProgramFiles%\Microsoft Visual Studio\Shared;%PATH%"
    

    然后重新打开命令提示符,确保新添加的目录已包含在PATH中:

    echo %PATH%
    

    如果还是有问题,可能是由于环境变量的配置存在问题,需要更仔细地检查。

    步骤 3: 测试环境变量设置

    为了验证环境变量的设置是否有效,可以尝试在命令提示符中输入mfcdlltest2.dll,看能否成功找到。

    mfcdlltest2.dll
    

    如果能正常找到,说明环境变量已经设置正确。

    步骤 4: 检查dll的版本号

    如果您在开发过程中频繁遇到错误,可能是因为编译的mfcdlltest2.dll版本与预期不符。要解决这个问题,您可以通过比较编译的版本号和实际使用的版本号,或者更新到最新版本的mfcdlltest2.dll

    注意:在某些情况下,mfcdlltest2.dll可能会被多个项目共享,导致版本冲突。在这种情况下,您可能需要对所有项目的mfcdlltest2.dll进行单独的编译,以确保版本一致。

    总结

    解决此问题的关键在于确定mfcdlltest2.dll的确切位置,然后确保PATH变量指向了正确的路径。此外,对于频繁出现问题的情况,建议每次编译都使用相同的mfcdlltest2.dll版本,以便避免版本冲突。如果有任何疑问或需要进一步的帮助,请随时告诉我。祝您好运!

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月3日
  • 创建了问题 6月25日

悬赏问题

  • ¥20 c#使用NPOI向word表格中添加字段导致word有概率警告不可识别
  • ¥15 怎么使用hxe16进制编码器修改视频数据和图片一样!求教程!
  • ¥15 怎么用python模拟光的折射,反射,和全反射
  • ¥15 python打印机打印word和PDF文件出来的是乱码
  • ¥15 求达梦8数据库安装包
  • ¥15 YOLOv8模型网络结构更改后报错
  • ¥15 深度学习中梯度为None
  • ¥15 zynq烧写程序到flash后不运行
  • ¥15 裸板ESD问题的思考与实验
  • ¥15 electron+python