这是因为string和csting采用了Copy-On-Write技术,Copy-On-Write使用了“引用计数”,这是一种内存共享机制。
假设有一个动态链接库(叫myNet.dll或myNet.so)中有这样一个函数返回的是string类:
string GetIPAddress(string hostname)
{
static string ip;
……
……
return ip;
}
而你的主程序中动态地载入这个动态链接库,并调用其中的这个函数:
main()
{
//载入动态链接库中的函数
hDll = LoadLibraray(…..);
pFun =
//
string ip = (*pFun)(“host1”);
……
……
//释放动态链接库
FreeLibrary(hDll);
……
cout << ip<< endl;
}
联系客服