我看到了如何使用MFC来做到这一点,但是什么是仅使用win32库将LPSTR转换为BSTR的最佳方式。使用win32将LPSTR转换为BSTR
回答
#include <comutil.h>
LPSTR myLpstr = "Hello World!";
_bstr_t bstr = _bstr_T(myLpstr);
它还需要图书馆comsupp.lib
他说: “只有在Win32库” 。 – 2010-08-02 14:53:51
“comsupp.lib”用于“COM支持”。 COM是Win32的一部分。 – 2010-08-02 14:58:42
同意,但你应该使用comsuppw.lib(它在API中使用wchar_t *而不是unsigned short *)。它实际上不是一个Win32库(不在PSDK中,没有匹配的DLL),而是一个Visual C++静态库。因此,您不需要分发MFC,但它仍然不可移植到MingW – MSalters 2010-08-03 08:01:51
请注意,SysAllocString采用OLECHAR*
参数,该参数实际上是WCHAR*
而不是CHAR*
。这应该不会成为一个问题,除非您在编译时没有定义UNICODE
- 但不要这样做。
UNICODE是否已定义不会对LPSTR产生任何影响。你需要展示如何转换字符串。 – 2010-08-02 15:44:54
-1,在这里同意Hans Passant。 Unicode定义影响'LPTSTR',而不是'LPWSTR'或'LPSTR'。因此,这个答案缺失了困难的部分。 – MSalters 2010-08-03 07:56:03
- 1. 将BSTR转换为int
- 2. 将BSTR转换为wstring
- 3. 将ATL :: CComBSTR转换为BSTR *
- 4. 将BSTR转换为char *
- 5. 将BSTR转换为CHAR *和CHAR *为C中的BSTR
- 6. 如何将int转换为BSTR
- 7. 如何将Bstr转换为Platform :: String?
- 8. 将BSTR转换为char的问题*
- 9. BSTR转换为CString的CString
- 10. 转换BSTR为const char *
- 11. 转换BSTR到LPCWSTR
- 12. 无法从'std :: string'转换为'LPSTR'
- 13. 如何转换CString的LPSTR
- 14. C++中的字符串类型:如何将LPWSTR转换为LPSTR?
- 15. 为什么BSTR以及如何将其转换为QString?
- 16. 它作为参数传递时如何将_bstr_t转换为BSTR?
- 17. 将Win16 C代码转换为Win32
- 18. Win32。如何将POINT转换为LPARAM
- 19. 如何将int转换为LPCTSTR? Win32
- 20. 将Win32 :: OLE :: Variant转换为perl变量?
- 21. 使用Win32/MFC将HTML文件转换为PDF
- 22. MS VC++将字节数组转换为BSTR?
- 23. 将bstr转换为日期时间格式
- 24. 将char *转换为包含特殊字符的BSTR *
- 25. 怎么把LPCTSTR转换成LPSTR?
- 26. (C++/WinAPI)反转LPSTR
- 27. 错误BSTR转换成CString的
- 28. OPOS BSTR *没有正确转换
- 29. 如何转换成BSTR至DATE
- 30. 与转换BSTR问题浮动
的MultiByteToWideChar + SysAllocString – Luke 2010-08-02 16:50:14