Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;库返回指向mac os应用程序中对象的错误指针_C++_Objective C_Macos_Cocoa - Fatal编程技术网

C++ c++;库返回指向mac os应用程序中对象的错误指针

C++ c++;库返回指向mac os应用程序中对象的错误指针,c++,objective-c,macos,cocoa,C++,Objective C,Macos,Cocoa,我正在编写Cocoa Mac OS应用程序(10.9.5Xcode 6.2)。 这个应用程序使用C++库。 在Mac OS应用中,我将目标C++和C++混合。 我有一系列的电话: < Button Click >(COCOA)>目标C++对象-App+C++对象-> C++库< /P> App C++对象调用这个< /p> Client* client = ClientManager::getInstance()->getClient( url); client Mead和Clien

我正在编写Cocoa Mac OS应用程序(10.9.5Xcode 6.2)。 这个应用程序使用C++库。 在Mac OS应用中,我将目标C++和C++混合。 我有一系列的电话:

< Button Click >(COCOA)>目标C++对象-App+C++对象-> C++库< /P> App C++对象调用这个< /p>
Client* client = ClientManager::getInstance()->getClient( url);

client Mead和Client在C++库内部,GETClient始终返回初始化对象.< /P> 然后调用client的一些函数

std::string encoding = "utf-8";
client->setEncoding( encoding);
此函数会导致EXC_错误访问代码1和EXEC_I386_GPFLT。 库中此函数的代码为

string encoding;
void setEncoding(string newEncoding){ encoding = newEncoding;};

我检查了客户端的析构函数没有被调用,对象是有效的,但是由于某种原因,MACOSC++代码中的客户端>编码地址是不正确的。 我有以下地址:

C++库:

Client ptr: 0x102811c00
 &client->encoding 0x102811d70

MaCOS C++应用程序:

 Client ptr 0x102811c00
 &client->encoding 0x102811d60
<> Po>编码在MaCOS C++和库中对于0x10的地址有不同。
所以,问题是这是如何发生的,以及如何解决这一问题?

看起来客户的回报是零。你检查过断点吗?我猜这是因为C++中的C++字符串和NString的区别。在客户端C中,客户端是C++对象,所以它可以是Null pTr(不是NIL),GETClient函数只返回初始化的PTR,所以客户端不是NulLPTR并且没有被释放。我在C++中调用C++库函数,在这个主题中固定的MAC OS应用问题