hur.cn - 华软网

 热门搜索

LPCWSTR与char数组的转化问题

  作者:未知    来源:网络    更新时间:2011/5/16
#include<windows.h>
#include <time.h>
#include<TCHAR.h>
........
........
void ShellDraw( HDC  hdc )
{
// HDC hMemDc;
// BOOL ret = TRUE;
// HDC hMemoryDC;
// HBITMAP hbmp;
//分数提示显示文字
    char szText[30]="Score: ";
char szNum[20];

int iNowScore = iScores*100;
_itoa(iNowScore,szNum,10);
    strcat(szText, szNum);

RECT rt, rect;
GetClientRect(hAppWnd, &rt);
//墙的绘制
SelectObject(hdc,hbrushWall);
PatBlt(hdc,rt.left,rt.top,rt.right,rt.bottom,PATCOPY);
//内部游戏区的白色底平面
rect.left = rt.left+WALL_WIDTH;
rect.top = rt.top + WALL_HEIGHT;
rect.right = rt.right - WALL_WIDTH;
rect.bottom = rt.bottom - WALL_HEIGHT;
FillRect(hdc, &rect, (HBRUSH) (COLOR_WINDOW+1));

//分数提示板的绘制
/* hMemoryDC = CreateCompatibleDC(NULL);
hbmp = CreateCompatibleBitmap(hdc,265,55);
SelectObject(hMemoryDC,hbrushScore);
SelectObject(hMemoryDC,hbmp);
PatBlt(hMemoryDC,0,0,256,55,PATCOPY);
BitBlt(hdc,GetSystemMetrics(SM_CXSCREEN)/3,
   10,256,55,hMemoryDC,0,0,SRCCOPY);
*/
BitBlt(hdc,GetSystemMetrics(SM_CXSCREEN)/3,
   10,256,55,scoreDC,0,0,SRCCOPY);

//分数的打印绘制
SetBkMode(hdc, TRANSPARENT); 
TextOut(hdc, GetSystemMetrics(SM_CXSCREEN)/3+50, 30, szText,strlen(szText));  
 //这里不能将参数 4 从“char [30]”转换为“LPCWSTR”


---华软 网友回答---
错误提示是:
1>main.cpp
1>c:\users\administrator\desktop\snake_dlf\snake_dlf\main.cpp(308) : warning C4996: '_itoa': This function or variable may be unsafe. Consider using _itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        e:\study\vc\vc2008\vc\include\stdlib.h(465) : 参见“_itoa”的声明
1>c:\users\administrator\desktop\snake_dlf\snake_dlf\main.cpp(309) : warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        e:\study\vc\vc2008\vc\include\string.h(79) : 参见“strcat”的声明
1>c:\users\administrator\desktop\snake_dlf\snake_dlf\main.cpp(337) : error C2664: “TextOutW”: 不能将参数 4 从“char [30]”转换为“LPCWSTR”
1>        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
.......
---华软网友回复---
请好汉们指教。。。
---华软网友回复---
项目属性里选择:使用多字节编码集
---华软网友回复---
是不是把那个从父类那里继承来的勾去掉
---华软网友回复---
There are now UNICODE and ANSI versions of CString (CStringW and CStringA). To flag any unnecessary overhead incurred by implicit conversions, constructors that take the inverse type (for example, CStringA taking a UNICODE argument, or CStringW taking an ANSI argument) are now tagged as explicit using the following entry in stdafx.h:
http://msdn.microsoft.com/en-us/library/w1sc4t4k      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。