当我使用本地 CGEventRef
制作键盘事件时,我注意到即使它不是指针,您也可以使用函数“编辑”它的属性,如下所示:
CGEventRef eventRef = CGEventCreateKeyboardEvent(....);
CGEventSetFlags(eventRef, ...);
CGEventSetType(eventRef, kCGEventKeyDown);
然后您发布
事件。我知道如果你做这样的事情;
Player p; //assume Player has an x property and a y property (both public)
p.x = 100000; p.y = -431;
void changePlayerPosition(Player player__, int x, int y){
player__.x = x; player__.y = y;
}
changePlayerPostion(10, 43);
std::cout << p.x << p.y; //prints x=1000000 y=-431 even though we tried to edit the values to 10 and 43 in the function
即使我们在 changePlayerPosition
函数中编辑了它们,这些值也不会改变。我知道您可以通过在参数中获取 player__
的地址来解决此问题,即 Player &player__
。
这是一个例子。我想我真正的问题是,CGEventRef eventRef
属性(如其标志、类型等
)如何在不传递指针或地址的情况下进行编辑,例如 CGEventSetFlags , CGEventSetType 等
非常感谢!
P.S 一些代码会有帮助
最佳答案
引用:
typedef struct __CGEvent *CGEventRef;
这是一个指针。
关于c++ - 本地 CGEventRef 是否被视为指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442174/