摘要:
其实还可能出现其它类似的问题,如:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”error C2039: “strcpy”: 不是“ATL::CStringT<BaseType,StringTraits>”的成员但是程序在VC6下编译得很好,经过研究发现是设置上有所不同。在VC6中,默认使用MBCS编码,即多字节字符;而VC8、VC7默认的是Unicode编码,所以...关于这两种编码有何不同,我引用了网上的一篇文章,由于作者匿名,只能在此感谢:http://pc.nengbang.cn/group_thread/ 阅读全文
摘要:
关于CString剖析,“strcmp”: 不能将参数1从“CString”转换为“const char *”问题CString csNewListBoxText;CString csOldListBoxText(g_csFirstListBoxSelText);if(strcmp(csNewListBoxText,csOldListBoxText)!=0)//Release版本下出错情况://error C2664:“strcmp”:不能将参数1 ,2从“CString”转换为“const char *”//于是改成下面的:在前面添加(char *)(LPCTSTR)。if(strcmp(( 阅读全文
摘要:
C++/CLI维基百科,自由的百科全书C++/CLI(CLI:CommonLanguageInfrastructure)在计算机语言中是一门由微软设计,用来代替C++托管扩展(下文使用MC++指代)的语言。这门语言在兼容原有的C++标准的同时,重新简化了托管代码扩展的语法,提供了更好的代码可读性。和微软.NET的其他语言一样,微软向ECMA提交了C++/CLI的标准化请求,并且被ECMA通过成为正式的标准[1]。C++/CLI现在可以被Visual C++2005和更高版本的编译器支持。C++/CLI的部分特性已经申请了专利。语法改变C++/CLI是一门独立的语言(比如新的关键字),而不是像C 阅读全文
摘要:
C++/CLI中使用gcnew关键字表示在托管堆上分配内存,并且为了与以前的指针区分,用^来替换* ,就语义上来说他们的区别大致如下: 1. gcnew返回的是一个句柄(Handle),而new返回的是实际的内存地址. 2. gcnew创建的对象由虚拟机托管,而new创建的对象必须自己来管理和释放.first of all ,i have to declare that I just collect it not write it! 当然,从程序员的角度来说,管它是句柄还是什么其他的东西,总跑不掉是对某块内存地址的引用,实际上我们都可以理解成指针.下面我们就写一段代码来测... 阅读全文