error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”
在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章:
http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html
通过调用这个函数:
LoadLibrary出现的该问题。
原因 :工程只支持UNICODE字符
解决方法:
1、在解决方案资源管理器中的工程上右键属性->配置属性-->常规--->字符集---->使用多字节符字符集
2、也就是宽字符,所以下面这行代码,应该编译有错误
hinst=LoadLibrary("InTheHand.Net.Personal.dll");
也就是:
cannot convert parameter 1 from 'char [27]' to 'const unsigned short *'
改为:
hinst=LoadLibrary(L"InTheHand.Net.Personal.dll");
或者
hinst=LoadLibrary(_T("InTheHand.Net.Personal.dll"));
================================================================
关于LPCWSTR的类型:
LPCWSTR
L 后面的P是一个长的指针(以前16位windows时有短的,现在都是长的)
P 这是一个指针
C 指向的是const型
W 指向的是宽字符(unicode)
STR 这是一个字符串
windows编程中一般还是用LPCTSTR比较多,这是一个宏,编译器跟据_UNICODE参数,决定将他变成LPCSTR(ansi版)或者LPCWSTR(unicode版)
如果遇到参数错误(cannot convert parameter * from 'const char [**]' to 'LPCWSTR'),可以考虑察看声明,如果有ASNI方式的只要在函数后面加个A就可以了,或者在定义参数时把char*改为WCHAR*。
如果是混合使用的,那可以考虑转化,方法很多,比如使用TEXT()对字符串常量进行转化。
在VS2005以后的版本中默认是使用Unicode的,所以会出现很多以前版本没有的编译错误(实参与形参类型不匹配)。
error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”的更多相关文章
- C++ Error C2664:无法将参数 1 从“const char [9]”转换为“LPCWSTR”解决方案
问题出现 编译平台:VS2013 Windows 出现地方:在使用LoadLibrary( )函数动态链接DLL文件时出现的一个问题 Eg. 在使用 UNICODE字符的工程中, HIN ...
- 不能将参数1从“const char []”转换为“LPCTSTR
今天在使用vs2008+MFC时候,使用editControl的replacesel(“”)发生报错.如下::不能将参数1从“const char []”转换为“LPCTSTR” 其解决方案就是, 在 ...
- error C2664: 'TextOutW' : cannot convert parameter 4 from const char [5]' to LPCTSTR
转自:http://blog.sina.com.cn/s/blog_4aa4593d0100odra.html 问题的原因是字符串ANSI和Unicode编码的区别, VC6与VS2003等默认使用A ...
- ASSERT报错:error C2664: “AfxAssertFailedLine”: 不能将参数 1 从“TCHAR []”转换为“LPCSTR”
转载请注明来源:崨雁嫀筝 http://www.cnblogs.com/xuesongshu 这个错误是我在把tinyxml修改为宽字符(Unicode)版本时候遇到的问题,我首先按关键字把所有有ch ...
- VS2010 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR”
VS2010 (VC2010)建立工程时默认的字符集是Unicode,所以在代码中使用MessageBox时需要输入Unicode,用TEXT()这个宏输入参数,否则会报错: 代码:Message ...
- error: C2664: “zajiao::zajiao(const zajiao &)”: 无法将参数 1 从“const char [12]”转换为“char *”
原本打算在QT用一个字符串"ABCDEF12345"作为类zajiao的构造函数的参数,用来创建类zajiao的对象zajiao1. zajiao zajiao1("AB ...
- error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR”
vs2008提示 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” 在外面用vs2005编写mfc程序的 ...
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
转自VC错误:http://www.vcerror.com/?p=1395 问题描述: 代码: CString str("asdfafda"); str.Remove(" ...
- VS error 全集(error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'char *' to 'LPCTSTR'的解决方法)
我用的是VS2005,在编译MFC时遇到了如下错误: error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'char ...
随机推荐
- deque(双端队列)
deque 是对queue的改进,增加了 push_front 和 pop_front 函数 , 和 双向链表作用差不多: 这里就不多讲了.可以参考: List(双向链表)
- UVa 10806 Dijkstra,Dijkstra(最小费用最大流)
裸的费用流.往返就相当于从起点走两条路到终点. 按题意建图,将距离设为费用,流量设为1.然后增加2个点,一个连向节点1,流量=2,费用=0;结点n连一条同样的弧,然后求解最小费用最大流.当且仅当最大流 ...
- maven build脚本笔记
如果 code 只存在src/java/main 路径下,直接install就好,不必写<build> 资源文件:edu-common-config <build> <f ...
- JavaScript 堆
1.IE中不兼容ajax中data最后一个参数加逗号,其余chrome Firefox均支持. code: $("document ").ready(function() { $( ...
- Linux 网络编程: xinetd time
前言 终于把 xinetd 服务装好了,那就在来实现一下 TCP 协议从服务器和本机获取时间吧.那么多思想汇报还没写,我也是醉了. 安装 xinetd apt-get install xinetd 配 ...
- PHP中类的继承关系
在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就能得到相应的功能.假设大致有这么一个父类: 1 <?php 2 class Father{ 3 4 public functi ...
- C语言数组内存初始化
内存初始化当然有必然,但是不用memset,直接这样写就可以了:char* szRemoteFile = new char[MAX_LENGTH](); http://blog.csdn.net/pa ...
- HDU 3398 String
题目大意:一个长为n的01字符串,使前缀任意0的数量不大于1的数量,求方案数…… 题解:高一模拟赛时做过,是卡特兰数的几何意义,将字符串变为矩阵寻路,不可越过对角线,那么就是卡特兰数了,C(n+m, ...
- linux之grep用法
运用场景:在当前目录下查找,比如代码目录,不需要在.svn目录下,以及ctags生成的tags文件中查找: grep的--exclude-dir=参数就是为了排除某个目录的,即不包含等号后面的目录: ...
- ASP.NET页面传值方式
http://www.cnblogs.com/zhangkai2237/archive/2012/05/06/2486462.html http://www.cnblogs.com/xiaoyusmi ...