在exe中:
myexef(){
CString s1,s2;
...//动态加载myDll.dll
s1="How are yur";
s2=myDLLF(s1); //该语句调用DLL中的函数,执行正常,函数返回值正确无误.
s3=s2; //该语句会出错,该如何将s2的值赋值给s3呢?
...
s1.freeExtrc();
s2.freeExtrc(); //这一语句也会出错,该如何释放s2呢?
s3.freeExtrc();
}
myexef(){
CString s1,s2;
...//动态加载myDll.dll
s1="How are yur";
s2=myDLLF(s1); //该语句调用DLL中的函数,执行正常,函数返回值正确无误.
s3=s2; //该语句会出错,该如何将s2的值赋值给s3呢?
...
s1.freeExtrc();
s2.freeExtrc(); //这一语句也会出错,该如何释放s2呢?
s3.freeExtrc();
}
s3 没定义吧?
s2.freeExtrc(); //这一语句也会出错,该如何释放s2呢?
先注释掉这句看看..
CString myDLLF(CString s)
{
CString st;
...
st.FreeExtrc(); teture s;
}另:
在EXE的函数中存在:CString S3
另外,程序改成下面这样,在myexef()函数执行完毕也会报错.
在exe中:
myexef(){
CString s1,s2;
...//动态加载myDll.dll
s1="How are yur";
s2=myDLLF(s1); //该语句调用DLL中的函数,执行正常,函数返回值正确无误.
//s3=s2; //该语句会出错,该如何将s2的值赋值给s3呢?
...
//s1.freeExtrc();
//s2.freeExtrc(); //这一语句也会出错,该如何释放s2呢?
s3.freeExtrc();
} //前面不会有错了,但到这里(即本函数执行结束),也会出错.
是s3.freeExtrc(); 这句错了吧.S3都没看到有值,你想让它释放内存地址?