功能强大的Visual studio 2005 IDE庞大的开发环境和N多的配置设置,学习起来还不是很简单。C++/CLI通过对ISO C++ 标准的纯粹扩展和新语法,不像传统的MS-DOS 控制台程序,所以对于新手,首先应弄明白怎样在Visual studio 2005开发环境下编译常规控制台应用程序及Windows应用程序。
1)win32控制台应用程序
文件à新建à项目à Visual C++àwin32àwin32控制台应用程序à控制台应用程序à预编译头à完成à新建win32.cpp。
<1>Basic IO Program
<2> 托换代码和非托管代码混合编程
注意:需要设置CLR支持:项目属性à配置属性à常规à公共语言运行库支持à公共语言运行库支持/clr。
我们观察“配置属性à常规à多字节字符集/Unicode字符集”,这一选项默认为“Unicode字符集”。在vs2005以前版本的vs默认使用多字节字符集,而vs2005默认使用unicode字符集,这会使一些代码不能编译通过。这里我们要弄清楚从main到_tmain和从char*到_TCHAR*的问题。
从Visual Studio 7开始,Microsoft引入了所谓的一般文本例程映射。TCHAR.H中定义的是映射到多字节字符集(MBCS)、单字节字符集 (SBCS)和Unicode模型的宏或内联函数。这些映射处理那些表示为单字节ANSI ASCII或者双字节Unicode编码的字符数据。
如果正在遵从Unicode算法,则要确定把所有的main()函数改为_tmain(),并把字符指针从char*改为_TCHAR*。关于Windows编码问题将会经常遇到,大家可以网上查阅相关资料。
参考:《从char/wchar_t到TCHAR》
2)CLR控制台应用程序
文件à新建à项目à Visual C++àCLRàCLR控制台应用程序à打开左侧“解决方案资源管理器”中的源文件à右击à添加新项à建立.cpp。
注意: 项目属性à配置属性à常规à公共语言运行库支持à公共语言运行库支持/clr
3)MFC编写windows控制台应用程序
文件à新建à项目àVisual C++àwin32àwin32控制台应用程序à控制台应用程序à空项目
编译出错:fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
解决方法:项目属性à配置属性à常规àMFC的使用à在共享DLL中使用MFC或在静态中使用MFC。
4)利用vc++2005 进行传统SDK编程
参考:《Windows编程之从控制台到SDK窗口》
编译出错:找不到msvcr80d.dll或mfc80d.dll文件
解决方法:在"属性à配置属性à清单工具à常规"下有一个"使用FAT32解决办法“,把它选成“是”,再重新生成解决方案(重新编译)!(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用)
5)利用MFC类库开发Windows 应用程序
参考:《Windows编程之MFC窗口程序浅析》
注意:项目属性à配置属性à常规àMFC的使用à在共享DLL中使用MFC或在静态中使用MFC。
编译错误:error C2664: 'CFrameWnd::Create' : cannot convert parameter 2 from 'const char [9]' to 'LPCTSTR';Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
解决方法:项目属性à配置属性à常规à字符集à多字节字符集