我现在用vs2005编译了一个dll动态库,里面有两个构造函数:
Test(CString str);
Test(int i);
然后用vc6.0创建了一个MFC对话框应用程序,如果用该动态库构造整形对象没有问题,编译通过,但是构造字符串对象时连接不通过,有高手知道为什么吗?有没有解决的办法?
Test(CString str);
Test(int i);
然后用vc6.0创建了一个MFC对话框应用程序,如果用该动态库构造整形对象没有问题,编译通过,但是构造字符串对象时连接不通过,有高手知道为什么吗?有没有解决的办法?
vc6中默认是ansi
编译还是没有通过
LINK : warning LNK4075: ignoring /EDITANDCONTINUE due to /INCREMENTAL:NO specification
Creating library Debug/useGridCtrl.lib and object Debug/useGridCtrl.exp
useGridCtrlDlg.obj : error LNK2001: unresolved external symbol "public: __thiscall Test::Test(class CString)" (??0Test@@QAE@VCString@@@Z)
Debug/useGridCtrl.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Creating browse info file...useGridCtrl.exe - 2 error(s), 1 warning(s)
我在vc6.0下调用vs2005的函数,出现连接错误
vs2005代码:
#pragma once
#ifdef TEST_EXPORTS
#define TEST_EXPORT __declspec(dllexport)
#else
#define TEST_EXPORT __declspec(dllimport)
#endifclass TEST_EXPORT myTest
{
public:
myTest(void);
void displayMessage( CString str );
public:
~myTest(void);
}; vc6.0这样调用:
myTest dd;
dd.displayMessage( _T("sss") );结果出现连接错误:
Linking...
myDlgDlg.obj : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall myTest::displayMessage(class CString)" (__imp_?displayMessage@myTest@@QAEXVCString@@@Z)
Debug/myDlg.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.myDlg.exe - 2 error(s), 0 warning(s)就是参数为CString不行,请问是怎么回事,请高手多多指教
在VC2005中我用到CString的地方,当然如果是跨了工程的话,全部改PCHAR(char*)。这样就应该好了。
在VC2005中我用到CString的地方,当然如果是跨了工程的话,全部改PCHAR(char*)。这样就应该好了。