c++ - 本地 CGEventRef 是否被视为指针?

标签 c++ macos oop pointers memory

当我使用本地 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 一些代码会有帮助

最佳答案

文档在这里:https://developer.apple.com/library/mac/documentation/Carbon/Reference/QuartzEventServicesRef/#//apple_ref/c/tdef/CGEventRef

引用:

typedef struct __CGEvent *CGEventRef;

这是一个指针。

关于c++ - 本地 CGEventRef 是否被视为指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442174/

相关文章:

macos - Laravel Homestead 在 SSH 身份验证方法 : private key on mac 中挂起

ios - NSXMLParser - 只需要从解析器 :foundCharacters: in certain elements 读取

exception - try/catch 语句中有多少条语句?

c++ - sprof 平面配置文件名称列的格式很难看

c++ - 在另一个类 C++ 中创建对象

C++ 没有匹配的构造函数

PHP OOP - 类内的 MySQL 连接

c++ - 向上转换空指针是否会导致未定义的行为

iphone - 在 Mac 上从 iPhone 获取实时数据

C++ 在公共(public)容器中存储子对象