| 绵绵's profile我讨厌强力党PhotosBlogLists | Help |
|
|
4/28/2006 Unicode in MFC这个标题太大了,其实我没搞懂,就是找了一些解决方法
1.想在MFC中使用Unicode
教科书上说要定义UNICODE和_UNICODE两个宏,前者用于windows.h,后者用于c运行期头文件,但是你会发现在你的程序中写:
#ifndef UNICODE
#define UNICODE
#endif
#ifndef _UNICODE
#define _UNICODE
#endif
是没有用的!必须在Preprocessor definition里面定义这两个宏,sizeof(TCHAR)才等于2!为什么不知道,哪位大牛来讲一下这两种定义方式有什么不同?
定义这两个宏之后你会发现你的MFC工程会出一个LINK错误:
msvcrt.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 找不到MFC程序的入口函数WinMain,解决办法是在ProjectSettings->link->output把Entry设置为wWinMainCRTStartup。据说这是VC6.0的一个bug,但是我用的是.NET 2003,看来微软发现这个问题不容易改啊。 做完这两步之后不要忘了用TCHAR,_T,lstrcpy这些generic的宏,能同时支持ASCII和Unicode看着要高级点嘛。 2.Unicode和CFile 要在文件中写Unicode,英文没问题,但是写中文,你打开记事本看看会发现都是乱码,解决办法如下: CString path = _T("中文"); #ifdef UNICODE #endif 具体内部原因等我研究一下再来接着写,嗯 3.Unicode和Clipboard 代码如下,顺便指出Clipboard的用法: if(OpenClipboard()){ #ifdef UNICODE #else SetClipboardData(CF_TEXT, clip); #endif 剪贴板不用先写个什么头,直接copy就行了,估计这个事情SDK自己处理了,比文件好用多了。 4/10/2006 Win2K3主域控制器启动时停在“准备网络连接”问题解决了,是因为装了防火墙客户端,并且不是用于服务器的防火墙,但是原因不明白
出现这种情况可以进入不带网络连接的安全模式,关闭并禁用一些不必要的服务,我觉得往往是指一些非系统服务,也就是可能导致问题的第三方服务。一般都是这个原因造成,如果还是出现无法进入系统的情况,并且不是因为机器配置过低的话,就去问微软吧 |
|
|