在目标-C++;,在C++;和ObjC 我想我可以把C结构从C++边传递到Objc,比如这个 - (voic)myFuncObjc:(aStruct*) mystruct { } void myFuncCpp(anObjCStruct* mystruct) { } < >代码> MyStult当它进入到Objc函数中时,即使它从C++侧被分配,仍然未被赋值。 我不能直接通过像C++这样的C++函数直接传递Objc结构 - (voic)myFuncObjc:(aStruct*) mystruct { } void myFuncCpp(anObjCStruct* mystruct) { }
有什么习惯用法可以实现我想要的吗?那个签名看起来不正确。。try:在目标-C++;,在C++;和ObjC 我想我可以把C结构从C++边传递到Objc,比如这个 - (voic)myFuncObjc:(aStruct*) mystruct { } void myFuncCpp(anObjCStruct* mystruct) { } < >代码> MyStult当它进入到Objc函数中时,即使它从C++侧被分配,仍然未被赋值。 我不能直接通过像C++这样的C++函数直接传递Objc结构 - (voic)myFuncObjc:(aStruct*) mystruct { } void myFuncCpp(anObjCStruct* mystruct) { },c++,ios,objective-c,objective-c++,C++,Ios,Objective C,Objective C++,有什么习惯用法可以实现我想要的吗?那个签名看起来不正确。。try:-(void)myFuncObjC:(aStruct**)myStruct MeMCPY ”“复制”。如果你愿意,我可以贴一个例子。如果你能复制你的评论作为答案,并请添加一个例子,我将不胜感激。当系统打开插槽时,我将接受它作为正确答案。非常感谢你!
-(void)myFuncObjC:(aStruct**)myStruct在C++中:extern“C”void myFuncCpp(anObjCStruct**myStruct){*myStruct=malloc(sizeof(aStruct));}
您正在分配一个本地指针或一个指针的副本(又称参数)。。你需要一个指向指针的指针或一个指向指针的引用。你怎么称呼它?如果aStruct
很小,您可以通过它value@Brandon非常感谢。使用引用太久了,忘记了指针参数的细微差别。从第二个例子中,这是否意味着当将Objc传递给C++端时,即使Objc对象已经被分配,我需要重新分配它吗?如果它已经被分配,那么就只需传递您原来签名中已经拥有的指针(而不是我给您的那个指针)。Obj-C到C++ =你的签名。如果你打算在C++侧分配,那么C++是Obj-C的唯一一个。Obj-C到C++或C++到Obj-C是你的签名,如果你打算通过“代码> MeMCPY ”“复制”。如果你愿意,我可以贴一个例子。如果你能复制你的评论作为答案,并请添加一个例子,我将不胜感激。当系统打开插槽时,我将接受它作为正确答案。非常感谢你!