wpf调用托管的win32 动态库dll,在本地开发环境中没问题,在别的电脑上就没反应?

goodyufeng 2016-09-27 10:12:23
背景:在VS2015中建的WPF窗口应用程序,然后添加win32项目工程,该工程里封装了托管的C++类,然后类里主要做OPengl绘图;在WPF窗口先引用后,再调用托管C++类中的函数,最后显示;
问题:在本地开发环境中没有任何问题,WPF窗口也能显示图形; 然后我将工程中生成的Debug 里的启动程序和相关dll资源都复制到别的电脑上,尝试后,发现一旦进入调用托管C++类的窗口,就没反应了?
我自己后来尝试在客户端电脑上装了VS环境,发现有没这个问题?VS卸载了,问题又出现;并不是OPENGL引用的库、头文件缺少的问题!估计就应该是环境变了,缺少什么库?但我不太了解,所以还请了解的同仁大侠帮忙分析分析,是缺少什么必要的环境/~!
...全文
1714 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodyufeng 2016-10-21
  • 打赏
  • 举报
回复
错误:System.Windows.Markup.XamlParseException:"设置connectionId时引发了异常。"...未能加载文件或程序集"Join_Test,Version=0.0.0.0,PublicKeyToken=null"或它的某一个依赖项。系统找不到指定的文件。 场境:win10系统 、VS2015、WPF应用程序用的.NET 4.0框架、WPF界面应用/调用了 WIN32的DLL动态链接库:Join_Test(win32项目为托管,支持CLR运行库) 错误产生:在本地开发环境上都没有问题,就是安装到其它机器上后,打开此仿真窗口时报此错误 分析过程: 1、刚开始在其它win10的机器上试,发现此问题,于是装VS环境,发现就没出现此问题了,因此很大可能是环境问题,缺少了什么库之类的,卸载了VS之后,再试果然问题又出现;我于是朝着依赖项方面排除,到底缺什么dll,就将本地机器上的C:/windows/sysWOW64文件夹里的所以文件拷到问题机上同样的文件夹里,就这样一来二去,也不知咋滴就没出问题了;就没管它(后来在本地将win32 dll修改过一阵子,可能改过引用库之类的);然后将它安装倒一台新的win10机器上(确认安装VS环境)没问题,进一步证实是因为VC库的问题,但问题是总是筛选不出到底缺的是哪些(由于知识面不大,也或许理解不够深);于是换机器一台一台试; 2、排除代码生成的目标平台问题:改了目标生产平台版本...安装在win7的机器上,问题依旧,另外,有个同样是WPF调用win32的dll的Demo 也有此问题 3、排除其它:win32 dll 属性C/C++常规中敬告等级改为4 SDL检查删除不用 4、最终发现原来还有个VC++运行库需要单独安装(我的天啦!为什么早不发现,好吧,也许我知识理解不够深)。不过,别以为问题这么简单的,安装了VC++运行库还不一定可以解决,另外还需要将几个dll放入指定文件夹才能解决我出现的问题(还需要进一步分析...为什么这样?)
goodyufeng 2016-10-21
  • 打赏
  • 举报
回复
引用 2 楼 lovesmiles 的回复:
是.net Framework版本的问题 看看目标机器上的framework版本,vs编译的时候选择相应framework的版本。
此问题已解决 不是.net框架问题
勤奋的小游侠 2016-10-11
  • 打赏
  • 举报
回复
是.net Framework版本的问题 看看目标机器上的framework版本,vs编译的时候选择相应framework的版本。
goodyufeng 2016-09-28
  • 打赏
  • 举报
回复
有人帮忙么!?这问题困了很久了

7,540

社区成员

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

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