类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我在程序里写了如下代码:
long x,y;
char* str;
_variant_t x1,y1,str1 ;
x = 0;y = 0;str = "iloveyou";
x1 = _variant_t(x);y1 = _variant_t(y);str1 = _variant_t(str);
为什么出现下面的错误呢?
Linking...
LIBC.lib(malloc.obj) : error LNK2005: _malloc already defined in msvcrtd.lib(MSVCRTD.dll)
LINK : warning LNK4098: defaultlib "LIBC" conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/ATM.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
ATM.exe - 2 error(s), 1 warning(s)
请高手指教!!
网友回答:
.lib库文件问题。
怎么又是这样的问题
Project -> Add To Project -> file 加入相应的*.lib文件
并在 Project -> Settings 下的LINK属性页察看是否加载了
long x,y;
char* str;
_variant_t x1,y1,str1 ;
x = 0;y = 0;str = "iloveyou";
这样的定义有问题吧
str只是一个指针,并没有申请内存,我没有这样用过,我觉得一下的两种用法是正确的
1、char *str = "iloveyou"
2、char *str = new char[9];
strcpy(str, "iloveyou")
_variant_t TheValue = MySet->GetCollect("FIELD_1");
CString sValue=(char*)_bstr_t(TheValue);
由于COM对象是跨平台的,它使用了一种通用的方法来处理各种类型的数据,因此CString 类和COM对象是不兼容的,我们需要一组API来转换COM对象和C++类型的数据。_vatiant_t和_bstr_t就是这样两种对象。它们提供了通用的方法转换COM对象和C++类型的数据。
你自己看看这些,看有帮助么?