tnie / TestDll

学习 dll 导出函数、导出变量
7 stars 1 forks source link

跨模块拷贝构造传参,拷贝构造发生在哪一个模块? #11

Open tnie opened 6 years ago

tnie commented 6 years ago

3

void helloValue(std::string name)
{
    cout << "hello world, " << name << endl;
}   // 返回时 __acrt_first_block == header 错误
    // 毫无疑问, name 是在 dll 模块析构,故
    // 反推出 name 是在 exe 模块完成拷贝构造的!

理论依据呢?

tnie commented 6 years ago
// dll
std::string returnValue(void)
{
    return "value";
}
// exe
{
        auto str = returnValue();
        cout << str << endl;
}   // run failed 
    // 返回时 __acrt_first_block == header 错误
    // 反推出 str 是在 dll 模块完成拷贝构造的!

理论依据?