可执行程序用Unicode编译,DLL用多字节编译,DLL方法中的参数有字符串类型,该如何处理
可执行程序用Unicode编译,DLL用多字节编译,DLL方法中的参数有字符串类型
DLL以多字节字符编译 DLL中 有以下导出函数
extern "C" __declspec(dllexport)
LPVOID CreateObject(LPCTSTR lpszInterfaceName, LPCTSTR lpszInit)
{
CCommon *pObj = NULL;
CString str = lpszInterfaceName;
if(0 == str.CompareNoCase(_T("IPcomXML"))
{
pObj = new CPComXML;
if(NULL == pObj)
{
return NULL;
}
}
else
{
return NULL;
}
return pObj->ExternalQueryInterface();
}
可执行程序用Unicode编译
在可执行程序中 调用此方法时传入的是Unicode字符,那么这里就不会相等了
请问如何解决这个问题??
------解决方案--------------------
两个编码方式统一一下呗,上次我也遇到这样的问题,真的纠结了半天,也许当前的一个编码问题解决了但是接着又会有另一个出现,并且很缠人,最后我都用了多字符集。
------解决方案--------------------
DLL以多字节字符编译 DLL中 有以下导出函数
extern "C" __declspec(dllexport)
LPVOID CreateObject(LPCTSTR lpszInterfaceName, LPCTSTR lpszInit)
{
CCommon *pObj = NULL;
CString str = lpszInterfaceName;
if(0 == str.CompareNoCase(_T("IPcomXML"))
{
pObj = new CPComXML;
if(NULL == pObj)
{
return NULL;
}
}
else
{
return NULL;
}
return pObj->ExternalQueryInterface();
}
可执行程序用Unicode编译
在可执行程序中 调用此方法时传入的是Unicode字符,那么这里就不会相等了
请问如何解决这个问题??
------解决方案--------------------
两个编码方式统一一下呗,上次我也遇到这样的问题,真的纠结了半天,也许当前的一个编码问题解决了但是接着又会有另一个出现,并且很缠人,最后我都用了多字符集。
------解决方案--------------------