如何获取指针知向的值呢?
例如:
TCHAR *A = L'1'
VOID XX(TCHAR *STR)
{
DWORD Sbuf = GetGlyphOutlineW( hdc,*STR,GGO_GRAY8_BITMAP ,&textG,0,NULL,&mt);
}
但是说我"非法寻址"呢?
DWORD GetGlyphOutline(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2);
[解决办法]
L'1' 是一个字符,但是你把它付给指针,肯定是错误的。
TCHAR A = L'1';
TCHAR *A = L"1";
[解决办法]
A指向的是常量字符串指针,编译的时候应该会有类似的警告:warning: deprecated conversion from string constant to 'char*'|
而GetGlyphOutlineW需要修改该指针指向的内容,但这是错误的。
你可以自己申请一个数组如 TCHAR A[10];再传进去,应该就不会出错了。
[解决办法]
TCHAR *A = L"1";
GetGlyphOutlineW( hdc,STR[0],GGO_GRAY8_BITMAP ,&textG,0,NULL,&mt);