个大家分享一点小经验,在使用MFC中的CString时,一般不要使用静态库,静态库中的LoadString(ID)在装入系统ID时,会出错。
我跟踪了一下,这个LoadString(ID)调用LoadString(HINSTANCE,nID),
LoadString(HINSTANCE,nID)再调用A讨论GetStringResourceImage(HINSTANCE,nID),
而GetStringResourceImage(HINSTANCE,nID)最终会调用FindResource的win32函数,这个FindResource的Win32函数,此时返回的句柄为NULL,导致整个调用失败。
我查了下,这个错误的代码是1813,说是找不到给定的资源类型,呵呵。估计要不给的ID不对,就是静态库中根本就忘了写进去了,哈哈。
这个GetStringResourceImage的定义在atlcore.h中,大家可以自己去看看。