Geo*_*rge 9 c++ typedef visual-c++
这个typedef:
typedef DWORD WINAPI
(* CM_Open_DevNode_Key)(DWORD, DWORD, DWORD, DWORD, PHKEY, DWORD);
Run Code Online (Sandbox Code Playgroud)
在BorlandCpp中编译很好,但是,当我在msvc中编译它时我必须删除WINAPI(这只是一个别名__stdcall):
typedef DWORD
(* CM_Open_DevNode_Key)(DWORD, DWORD, DWORD, DWORD, PHKEY, DWORD);
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我可以安全地删除WINAPI部分吗?
更新:我必须从typedef中删除"WINAPI",否则我得到了
error C2059: syntax error : '('
Run Code Online (Sandbox Code Playgroud)
为线.
你能告诉我为什么Borland可以用"WINAPI"编译它而Msvc不能吗?
Mic*_*ael 14
我相信VC++你需要将调用约定放在()中这里是一个在MSDN上使用函数指针typedef中的调用约定的例子.
typedef DWORD (WINAPI * CM_Open_DevNode_Key)(DWORD, DWORD, DWORD, DWORD, PHKEY, DWORD);
Run Code Online (Sandbox Code Playgroud)
这应该编译没有问题.
| 归档时间: |
|
| 查看次数: |
5901 次 |
| 最近记录: |