有这样一个结构体
struct Test{
int i;
CString str;
};我做了一个dll文件,其中的一个函数是:
void set(Test *t)
{
t->i = 9;
t->str = "ttt"; //此处出错
}在调用此dll的程序中:
Test *t = new Test;
set(t);
delete t;在debug版本中没有问题,在release版本中就出错,这是为什么呢?
郁闷
struct Test{
int i;
CString str;
};我做了一个dll文件,其中的一个函数是:
void set(Test *t)
{
t->i = 9;
t->str = "ttt"; //此处出错
}在调用此dll的程序中:
Test *t = new Test;
set(t);
delete t;在debug版本中没有问题,在release版本中就出错,这是为什么呢?
郁闷
解决方案 »
- 我就剩10分,各位兄台行行好,回答个基础问题吧
- 已打开文件的复制问题。请教高手!急急,在线等!
- 请教如何在自己create的CComboBox的问题
- 如何把日期类型字段值转换成字符串类型?
- 在VC中打开数据集时,怎么把c中定义的变量传递到open函数的select语句中?
- 如何让install shield支持生成中文安装路径名称?
- 如何用COM实现带有数据类型嵌套的数据结构?
- 菜鸟的弱问题! 不要笑《---
- 在线等候!!!请问如何在一个程序里建立多个服务
- 大家来讨论一下。VC的DEBUG版本和RELEASE版本都有什么区别??
- 怎么不对呢?
- 为什么我用了ADODC在别的机子上就不行了呢?请帮帮忙啊,谢谢!(急啊,头都大了)
那sizeof(Test)会返回什么? 谁知道?
sizeof(CString) = 4;
sizeof(int) = 4;当这个dll是debug版本的时候,我调用这个函数不会出任何问题,
本想编程release版本发布,谁知道就出现了问题。
怎么解决啊,高人请回一下吧。
struct Test{
int i;
char szData[1];
};
结构体中最好不要使用CString对象。
我也想用char数组,不过不行:(
如果dll是debug版本的,那么调用程序debug版本能够通过。
如果dll是release版本的,那么调用程序debug版本时不会通过,但调用程序也是release版本的话就能通过。
设计人员把结构设计成这样,未免也太水了点儿。