作者 主題: BSTR跟char有何不同?  (閱讀 1402 次)

0 會員 與 1 訪客 正在閱讀本文。

infoman

  • 懷疑的國中生
  • **
  • 文章數: 31
    • 檢視個人資料
BSTR跟char有何不同?
« 於: 2014-01-16 21:47 »
請問各位學長 BSTR跟char有何不同?
若要將一個函式輸出從char改為BSTR要如何修改
char *show(void)
{
   char string[]="Hello";
   return string;
}
我使用的是DEV C++

elleryq

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 908
  • 性別: 男
    • 檢視個人資料
    • Thinking more...
Re: BSTR跟char有何不同?
« 回覆 #1 於: 2014-01-24 16:02 »
http://msdn.microsoft.com/en-us/library/windows/desktop/ms221069%28v=vs.85%29.aspx 裡可以看到其定義
代碼: [選擇]
typedef WCHAR OLECHAR;
typedef OLECHAR* BSTR;
typedef BSTR* LPBSTR;

假設你是在沒有定義 UNICODE 的情況下,推測應為
代碼: [選擇]
typedef char OLECHAR
typedef OLECHAR* BSTR;
typedef BSTR* LPBSTR;

所以,你的程式就可以改為
代碼: [選擇]
char *show(void)
{
   BSTR string="Hello";  // macro 經過處理,就是 char* string = "Hello";
   return string;
}
Plan your work, then work your plan.
我的首頁:http://blog.elleryq.idv.tw
351899by http://counter.li.org