可执行程序用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字符,那么这里就不会相等了
请问如何解决这个问题??



------解决方案--------------------
两个编码方式统一一下呗,上次我也遇到这样的问题,真的纠结了半天,也许当前的一个编码问题解决了但是接着又会有另一个出现,并且很缠人,最后我都用了多字符集。
------解决方案--------------------
探讨

UNICODE字面常量是微软搞的,加个_T就会在编译时编程UNICODE编码而不是WINDOWS默认的GBK码。

但要记住,你有权利控制这一切,如果想将一个UNICODE字符串传给DLL,那么将UNICODE字符串iconv为GBK,之后传入即可。