error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > __thiscall HttpClient::GetMethod(wchar_t const *)" (__imp_?GetMethod@HttpClient@@QAE?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@PB_W@Z),该符号在函数 "protected: wchar_t * __thiscall CAXDCtrl::Test(wchar_t const *)" (?Test@CAXDCtrl@@IAEPA_WPB_W@Z) 中被引用1、是用一个MFC的ActiveX工程引用了一个win32的动态库
2、两个工程的编码统一为unicode
3、所需头文件和Lib都正确引用(因为如果是使用HttpClient下的另外一个无参的函数时正常)基于以上3点,错误基本能确定是因为我传入的参数不正确wstring HttpClient::GetMethod( LPCTSTR url ) 这个是GetMethod函数的定义
调用如下:
BSTR CAXDCtrl::Test(LPCTSTR str)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HttpClient hc;
hc.OpenSession(); //此处正常
wstring ws = hc.GetMethod(str); //此处报错, 注释掉可成功
CString strResult = str; // TODO: 在此添加调度处理程序代码 return strResult.AllocSysString();
}
请高人指点这是什么原因,谢谢
2、两个工程的编码统一为unicode
3、所需头文件和Lib都正确引用(因为如果是使用HttpClient下的另外一个无参的函数时正常)基于以上3点,错误基本能确定是因为我传入的参数不正确wstring HttpClient::GetMethod( LPCTSTR url ) 这个是GetMethod函数的定义
调用如下:
BSTR CAXDCtrl::Test(LPCTSTR str)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
HttpClient hc;
hc.OpenSession(); //此处正常
wstring ws = hc.GetMethod(str); //此处报错, 注释掉可成功
CString strResult = str; // TODO: 在此添加调度处理程序代码 return strResult.AllocSysString();
}
请高人指点这是什么原因,谢谢
wchar_t就是双字节的,应该是UNICODE的原因,改一下 Mt或者MD看看。
我也是才转的C++可能命名不规范,我说一下,都是在C++下做的开发,只是一个工程是win32.dll工程,一个是
mfc activeX工程, 两个工程所使用的编码统一为unicode
LPCTSTR 不是宽字符指针吗?C++的字符串类型太多了,搞不清楚啊
工程必须是unicode字符集的,换成多字节字符集报100多个错……
发帖之前就试过了,一样不行,直接编译不通过 Ozn! 求大神啊