file_name.Format("%S",filename);???可以吗?filename是宽字符,应该用bstr2..的一个函数转换一下巴??!具体函数我忘记了

解决方案 »

  1.   

    感谢您使用微软产品这段代码的问题在于CString和BSTR的类型不匹配。BSTR是在服务端和客户端进行数据传送的一种数据类型。可以被许多API函数调用,例如SysAllocString和SysFreeString。Microsoft Visual C++提供了两个封装类_bstr_t 和CComBSTR用于支持BSTR。
    _bstr_t类是ATL的一部分;CComBSTR是COM所支持的类;两个类都提供了一系列字符串操作方法。对基于MFC的程序,建议使用_bstr_t,但必须将comdef.h文件加入stdafx.h文件。您可以使用_bstr_t从char字符串建立_bstr_t实例,例子代码如下:Char* *szArgument = "Mastering";
    _bstr_t bst(szArgument);对使用CComBSTR的程序,须将atlbase.h文件加入stdafx.h文件。不同于_bstr_t类,CComBSTR不提供指向char指针的转换函数。-微软全球技术中心 VC开发支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。