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也是正常的。

请问有什么解决办法?
...全文
1204 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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 返回什么错误码呀

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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