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

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日

悬赏问题

  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?