- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
你好 StackOverflow 社区
我已经搜索了很长时间,但没有找到解决我的问题的方法。我现在正在做一个项目,我必须将 Windows 工具移植到 Linux 操作系统(具体来说是 Ubuntu 12.04LTS)。基于 Windows 的工具是用 C++ 编写的,因此我试图在 Linux 上用 C++ 重写该工具。我现在面临的问题是,在 Windows 解决方案中有一部分使用了“MSG”。这是来自 Windows 解决方案的代码片段:
/** Callback to send CAN message */
#define CB_SEND_MSG( MSG ) CanWriteCB( MSG )
我已经实现了 CanWriteCB 方法,但我没有找到与“MSG”等效的 Linux。我在 Windows 工具的包含文件“WinUser.h”中找到了 MSG 的声明。这看起来如下:
/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
我不知道它是否对你有帮助,但这里也是'CanWriteCB'方法的实现:
boolean_t CanWriteCB( Can_Msg *msg )
{
return (CanDispatcher_SendMsgByCanBus( msg ) == CanDisp_Err_Ok ) ? TRUE : FALSE;
}
const Det_Config detCfg =
{
WriteDebugErrorData
};
有人知道如何在 Linux 平台上实现这种结构吗?我唯一发现的是如何创建消息队列,但我完全不知道这对我有什么帮助?
谢谢你的时间
最好的问候亚历克斯
最佳答案
你说的MSG是一个宏参数,和struct tagMSG
完全没有关系。
Linux 使用 SocketCAN 支持 CAN实现了CAN总线的socket接口(interface),支持各种HW设备。最接近 CAN 消息结构的是 struct can_frame
。
关于c++ - CAN 总线通信 - MSG 结构 (WinUser.h) Linux 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30302868/
我一直找不到关于此功能的任何合适的文档。我正在使用的代码库使用 winuser.h 中名为 LoadStringW 的函数,该函数采用以下参数:(HINSTANCE hInstance, UINT u
我正在尝试使用 SetWinEventHook ,但是当我尝试使用 MinGW 进行编译时,它说 SetWinEventHook以及一些其他定义和函数“未在此范围内声明”。 我用谷歌搜索了很多,发现我
我正在尝试使用 winit 创建一个窗口 crate 始终在顶部( HWND_TOPMOST )。我正在创建我的窗口,并获得 RawWindowHandle::Windows从中。那个struct有一
我创建了一个简单的应用程序来结合使用 opengl 和 MFC。问题是我有以下代码 ReleaseDC(m_hWnd,m_hDC); 根据 https://msdn.microsoft.com/en-
你好 StackOverflow 社区 我已经搜索了很长时间,但没有找到解决我的问题的方法。我现在正在做一个项目,我必须将 Windows 工具移植到 Linux 操作系统(具体来说是 Ubuntu
在 Windows 上开发 Qt 应用程序。我只在我的源文件中包含 QVboxLayout,这会导致错误,因为它的宏会覆盖我的方法名称。 foo.hpp class foo { ChangeM
我是一名优秀的程序员,十分优秀!