当我使用本地CGEventRef
制作键盘事件时,我注意到即使它不是指针,您也可以编辑"它具有函数的属性,如:
CGEventRef eventRef = CGEventCreateKeyboardEvent(....);
CGEventSetFlags(eventRef, ...);
CGEventSetType(eventRef, kCGEventKeyDown);
然后你Post
这个事件。我知道如果你做这样的事情;
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
如何编辑flag, type, etc.
属性,而不是在CGEventSetFlags, CGEventSetType, etc.
等函数中传入指针或地址,非常感谢!
P.S一些代码会有所帮助
答案 0 :(得分:1)
引用:
typedef struct __CGEvent *CGEventRef;
它是一个指针。