dll文件在win7正常,在win10提示找不到

青蛙工作室 2021-01-07 09:37:04
详细描述一下我遇到的问题。
自己写的64位dll文件,封装了一些客户端使用的socket功能,并没有涉及硬件或敏感操作,是给64位Excel的VBA调用的,之前在win7_64+Excel2010_64平台上运行正常。
最近换了新电脑,是win10_64+Excel2010_64,VBA调用dll文件时,提示找不到dll文件。但是我多次确认,该Dll文件就存在它该在的地方,文件夹也不含全角或汉字,路径不长,本地硬盘上,没有访问限制。
该dll为了适应32位和64位Excel,还分别编译成32位和64位版本,之前也有用过win10_64+Excel2010_32,调用32位版本的dll也是正常的。

请问有什么解决办法?
...全文
632 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
如果你不是添加了一些没用到的库,CB产生的dll会比vc产生的小,同样静态链接或者动态链接的情况下。
  • 打赏
  • 举报
回复
bigfog 2021-01-15
CB的所有应用库都打包在里面,而vs编译后用到的应用库都在系统文件夹下,所以容量就小,没什么好奇怪的
  • 打赏
  • 举报
回复
青蛙工作室 2021-01-14
LoadLibrary是能得到地址的。 综合各种表现,猜测是引用到某些不存在的dll,但哪怕知道又如何, 反正是不能用了。 这几天下载了vs2019,把CB的原码搬到VS编译,各种报错,折腾到下午刚好完成,win10能用。编译出来的dll是130k,而原先用XE8编译的同功能dll是4M!
  • 打赏
  • 举报
回复
xdn1ce 2021-01-12
dll不能用,表现是什么样的? LoadLibrary返回NULL? 建议调用 GetLastError() 分析下返回的错误码。
  • 打赏
  • 举报
回复
tdump64 你的dll 看看引用了哪些dlls
  • 打赏
  • 举报
回复
青蛙工作室 2021-01-11
今天测试,用VS2019写的dll,在win10_64机器上能加载,并得到预期返回。前几天用VS不熟release版缺了运行库,今天已经解决。现在的问题就是用XE8编译的dll在win7_64能用,在win10_64不能用,原因不明。如果没有更新的发现,也许这就是结论。
  • 打赏
  • 举报
回复
青蛙工作室 2021-01-10
我的dll在多台win7_64机器上跑了2年多,这些机器有Excel_64,也有Excel_32,都有配套可用的dll,一直运行正常。现在到了win10_64,全部废了。 安装VS2019的机器是win7,用它测试是能加载的,用到win10也不行。vs2019是初次接触,用了release版,生成的dll很小,不确定会不会缺运行时包,明天再试试。
  • 打赏
  • 举报
回复
这说明vc++2019的runtime在你的win10机器上没有,所以你的cb的dll也很可能是同样的问题,是带运行时包编译的
  • 打赏
  • 举报
回复
ooolinux 2021-01-10
你的dll在不装xe8的win7上能不能被加载才是重点。
  • 打赏
  • 举报
回复
青蛙工作室 2021-01-09
我的dll在win7用得好好的,到了win10就不行,有些提示找不到dll文件,有些提示加载dll 错误。用的编译器是XE8,还怀疑过XE8编译的东西不能用在win10,就弄了个VS2019社区版,随便写了几行代码编译成64位dll,同样的调用,也是提示加载dll错误。所以,见鬼了。
  • 打赏
  • 举报
回复
ooolinux 2021-01-09
有道理,你的dll是不是静态编译的,不依赖其它动态库的?
  • 打赏
  • 举报
回复
xdn1ce 2021-01-09
是不是少了什么依赖库。。 getlasterror 返回什么错误码呀
  • 打赏
  • 举报
回复
相关推荐
发帖
Windows SDK/API
加入

1215

社区成员

C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
申请成为版主
帖子事件
创建了帖子
2021-01-07 09:37
社区公告
暂无公告