dll之loadbitmap失败 getlasterror返回1813 1814的解决

在使用DLL时遇到LoadBitmap失败,GetLastError返回1813和1814的错误。问题源于DLL与调用程序中资源ID不一致。解决方法是确保DLL资源定义的名称和值与调用程序完全相同,以避免找不到指定资源名或资源类型的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       最近用DLL做单纯的资源供给部件遇到了LoadBitmap失败的问题(返回1813,1814),经过不懈的努力总算搞清楚是怎么回事了。

  问题的生产:
  我把一个dLL(zy.dll)装进了一张位图(IDB_BITMAP1)和一个图标(IDI_ICON1),然后通过程序DllzyTest来调用。调试运行不
成功,返回1813和1814。
  下面是1813和1814的意义:
  1813:找不到映像文件中指定的资源类型
  1814:找不到映像文件中指定的资源名
  在网上找了好多文章这两个错误的解决都写得不清楚,后来仔细排查发现了生产错误的原因了,是因为资源DLL建立时位图资源和图标
的定义和资源调用程序里的位图资源和图标资源的定义不一样造成的。

  看下图,我zy.dll的IDB_BITMAP1和IDI_ICON1的定义是(打开zy.dll的Resource.h查看):

       看下图,而我的DllzyTest对IDB_BITMAP1和IDI_ICON1的定义是(打开DllzyTest的Resource.h查看):


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值