gpt4 book ai didi

c++ - WNDPROC声明问题,从C转C++

转载 作者:行者123 更新时间:2023-11-30 01:32:38 27 4
gpt4 key购买 nike

我正在将程序从 C 转换为 C++。我将编译器设置为默认使用 __fastcall 调用约定。

我曾经有一个声明行如下:

INT32 PASCAL graph_window_handler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

后来我有:

wndclass.lpfnWndProc    = graph_window_handler;

这一切都在 C 下编译和工作。但是在 C++ 下,我从编译器那里收到关于第二行代码的各种提示。我想我需要将原始声明更改为涉及 WNDPROC 的内容,也许要插入一个 _cdecl?有或没有 INT32?但似乎我尝试的每一个变体仍然会受到提示。声明应该是什么样的,这样第二行就不会被提示? - 干杯。

最佳答案

根据 MSDN documentation它应该如下所示:

LRESULT CALLBACK graph_window_handler(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);

如果您检查 WinUser.h,您会看到 WNDPROC 类型定义如下:

typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);

关于c++ - WNDPROC声明问题,从C转C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com