COM组件中字符串问题

STDMETHODIMP CATLCOM:: ComAppend( BSTR inStrIP,int port,BSTR password,BSTR* outValuse)
{

std::ofstream outfile;
outfile.open("log.txt"); 
if(outfile.is_open())  
{  
           outfile<<"--------------------------------------------------------------------------------------------------------------------------------------------"<<endl;    
  outfile<<"                                                                                      字符串问题                                                                                  "<<endl;    
  try
             {
   //BSTR转string
string strIP;
DWORD dwNumIP = WideCharToMultiByte(CP_OEMCP,NULL,inStrIP,-1,NULL,0,NULL,FALSE);
char *psIP;
psIP= new char[dwNumIP];
WideCharToMultiByte (CP_OEMCP,NULL,inStrIP,-1,psIP,dwNumIP,NULL,FALSE);
strIP = psIP; 
// 删除临时变量
delete []psIP;

string strPassword;
DWORD dwNumPassword = WideCharToMultiByte(CP_OEMCP,NULL,password,-1,NULL,0,NULL,FALSE);
char *psPassword;
psPassword= new char[dwNumPassword];
WideCharToMultiByte (CP_OEMCP,NULL,password,-1,psPassword,dwNumPassword,NULL,FALSE);
strPassword = psPassword;
// 删除临时变量
delete []psPassword;


//string转BSTR
string strOutValuse= m_CharDll.getAppend(strIP,port,strPassword);
CComBSTR temp(strOutValuse.c_str());
*outValuse= temp;
        }
        catch(std::exception e)
{
outfile<<"出现异常 "<<endl; 
outfile<<e.what()<<endl;  
}
}  
else  
{  
  cout<<"不能打开文件!"<<endl;  
}
outfile<<"-----------------------------------------------------------------------------------------------------------------------------------------------------------"<<endl;    
outfile.close();

return S_OK;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值