专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Ruby/Rails

MFC之调用DLL的有关问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

发布时间:2011-06-29 17:50:29 文章来源:www.iduyao.cn 采编人员:星星草
MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

今天在项目中遇到了一个小小的问题,在调用别人动态连接库(DLL)的时候,总是出现如下提示,导致程序无法正常运行,编程环境:VS2010+MFC

问题提示:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

经过查找资料,问题得以解决,感谢:

解决方法来源于:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html

1 静态调用Lib
Project | setting 


Link选项卡Library modules处
添加“XXX.lib”
然后#include "XXX.h"
把XXX.lib(引入库文件),XXX.DLL(动态库文件)
XXX.h(头文件)
全部放到工程目录下
方法二:
pragma  commet(lib,“*****.lib”)


2 动态调用DLL
通过
LoadLibrary
GetProcAddress

FreeLibrary实现。

原因 :工程只支持UNICODE字符

解决方法:

1、工程属性->配置属性-->常规--->字符集---->使用多字节符字符集


2、也就是宽字符,所以下面这行代码,应该编译有错误
hinst=LoadLibrary("InTheHand.Net.Personal.dll");
也就是:
cannot convert parameter 1 from 'char [27]' to 'const unsignedshort *'
楼主将代码改为:
hinst=LoadLibrary(L"InTheHand.Net.Personal.dll");
或者
hinst=LoadLibrary(_T("InTheHand.Net.Personal.dll"));
试试

版权声明:本文为博主原创文章,未经博主允许不得转载。

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: