原创 GetProcAddress UNICODE与多字节编程

2008-6-8 14:59 6829 9 9 分类: 软件与OS

VC.Net在编译成UNICODE时,有许多函数要处理,


例如:  strcpy,strlen等等,


这种情况下,可以用宏来处理,示例如下:


#ifdef _UNICODE
//--------------------------------------------------------------------
#define LtStrCpy  wcscpy
#define LtVsprintf  vswprintf
#define LtSprintf  swprintf
#define LtStrlen  wcslen

//--------------------------------------------------------------------
#else
//--------------------------------------------------------------------
#define LtStrCpy  strcpy
#define LtVsprintf  vsprintf
#define LtSprintf  sprintf
#define LtStrlen  strlen
//--------------------------------------------------------------------
#endif


 


但对于一些API如果MS没处理怎么办呢?


例如:


GetProcAddress函数并没有区分GetProcAddressW/GetProcAddressA这样的区分,而GetProcAddress的第二个参数应该是LPCSTR (const char*),这是因为Win32平台函数在导出的时候函数名是ANSI字符,所以正确的写法是这样:

GetProcAddress(hModComCtl,(LPCSTR)(“DllGetVersion”));

第二个参数利用强制转换,以避免在C++严格检查语法时报错.



文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条