酷!學園

技術討論區 => 程式討論版 => C/C++程式設計討論區 => 主題作者是: infoman 於 2014-01-16 21:47

主題: BSTR跟char有何不同?
作者: infoman2014-01-16 21:47
請問各位學長 BSTR跟char有何不同?
若要將一個函式輸出從char改為BSTR要如何修改
char *show(void)
{
   char string[]="Hello";
   return string;
}
我使用的是DEV C++
主題: Re: BSTR跟char有何不同?
作者: elleryq2014-01-24 16:02
從 http://msdn.microsoft.com/en-us/library/windows/desktop/ms221069%28v=vs.85%29.aspx (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;
}