- 论坛徽章:
- 0
|
这个问题找到原因了,是我的程序写的不够严谨
原来是
string temp1("asdwefdf");
wstring temp2;
copy (temp1.begin(), temp1.end(), temp2.begin());
查了一下,copy不能用于安插新元素。改成:
string temp1("asdwefdf");
wstring temp2(temp1.begin(), temp1.end());
就可以了。
但是还有一个问题没解决,我程序里用了OTL访问数据库,多线程的时候出现问题,每个线程只要新建一个otl_stream,还没有进行真正的查询,就会报错。例如:
otl_stream i(1, "select * from t_usr where UsrID = :f1<int>",db);
这条句多线程一起执行就会报错:
Debug Assertion Failed!
Program:...
File: d:\Program Files\Microsoft Visual Studio 8\VC\include\xtree
Line: 370
Expression: map/set iterator not incrementable
这个比较麻烦。OTL里面都是模板,和VC的STL实现不知道会不会有什么冲突。
在GCC下运行很正常。 |
|