C# C++ 写修饰符为WINAPI的xxxA和xxxW函数
在C#中可以很方便的调用WinAPI,特别是像MessageBox等函数它是有两个版本的:MessageBoxA和MessageBoxW,也可以通过指示获得相应的版本或自适应相应的版本。比如只需要拼写MessageBox而不用写MessageBoxA或MessageBoxW就能找到正确的函数:
[DllImport(.....)]
extern statics MessageBox(...);
现在问题来了,如果我自己也想用C/C++编写一个类似的,怎么实现呢??
我试过在用C编译器编译,只有这样才能实现
void __cdecl FuncA(char * s);
void __cdecl FuncW(wchar_t * s);
但大家应该发现我使用了调用约定__cdecl,而不是WINAPI(__stdcall),但我看到所有的WinAPI的调用约定都是WINAPI,而如果我写的C是用__stdcall就一定不成功,那到底微软自己的是怎么实现的呢?