dom*_*lao 1 c++ winapi mfc event-handling c-preprocessor
在我的代码中,我有:
#define EV( event ) SendEvent( new event );
EV( evFormat );
Run Code Online (Sandbox Code Playgroud)
但我想在EV宏中传递一个创建的对象,如:
CEvent *ev = new CEvent();
EV( ev );
Run Code Online (Sandbox Code Playgroud)
这可能吗?因为我无法修改EV宏.
#define EV( event ) SendEvent( new event ); // Can't be changed.
Run Code Online (Sandbox Code Playgroud)
宏强制执行每次调用都SendEvent应该创建一个新的动态对象.您的问题不仅仅是因为使用宏是愚蠢的,例如降低了源代码的可读性.这也是宏不允许您在调用之前创建对象,并且您不能更改宏; 用你的话说"我无法修改EV宏".
因此解决方案很简单:
不要使用宏,SendEvent直接使用,切记不要delete.
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |