日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

传递结构体变量解决方案,资料整理一

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 传递结构体变量解决方案,资料整理一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

  • 1.activex控件返回BSTR* 的方法

用到了

COleDataObject::GetData

BOOL GetData( CLIPFORMAT cfFormat, LPSTGMEDIUM lpStgMedium, LPFORMATETC lpFormatEtc = NULL );

其中第一個參數為ClipboardFormat

然后查找

The RegisterClipboardFormat function registers a new clipboard format. This format can then be used as a valid clipboard format.

UINT?RegisterClipboardFormat(LPCTSTR?lpszFormat???//?address?of?name?string);

然后查找

Clipboard ?

方便在應用程序間或者在應用程序內部傳遞參數

The clipboard is a set of functions and messages that enable Win32-based applications to transfer data. Because all applications have access to the clipboard, data can be easily transferred between applications or within an application.

This overview does not describe how to copy and paste linked or embedded objects. For information on these subjects, see the COM documentation.?

2.在C++中如何將ActiveX控件所使用的BSTR數據轉換成CHAR字符數組

論壇鏈接:http://blog.csdn.net/wbczyh/article/details/2137511

C++中如何將ActiveX控件所使用的BSTR數據轉換成CHAR字符數組?

?

BSTR類型是COM中使用的標準字符串類型。它其實是一個32位指針,保存字符串首字符的地址。

???????在C++中使用ActiveX控件編程時經常會遇到聲明為VARIANT* 類型但實際是BSTR數據的參數,如在使用WebBrowser2瀏覽器控件時候:

BeforeNavigate2Explorer1(LPDISPATCH pDisp, VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel)

上面這個事件函數的第二個參數URL就是個BSTR類型的數據,但聲明為VARIANT*。怎樣將它轉化char*類型的數據呢?方法如下:

?

#include?"comutil.h"

#pragma?comment(lib,?"comsuppw.lib")

#pragma?comment(lib,"comsuppwd.lib")

?

BeforeNavigate2Explorer1(LPDISPATCH pDisp,?VARIANT* URL, VARIANT* Flags, VARIANT* TargetFrameName, VARIANT* PostData, VARIANT* Headers, BOOL* Cancel)

{

_bstr_t bstrURL(URL);//新建一BSTR類型的數據,以VARIANT數據作為構造函數的參數

char* sURL=bstrURL;//通過自動類型轉換實現BSTR->char*的轉換

}

?

基本方法就是:先新建一BSTR類型的數據,通過在構造函數中傳入VARIANT*類型的數據來將COM中的數據拷貝到新建數據中;然后通過BSTR到char*的自動類型轉換實現BSTRàchar*的轉換。

?

值得注意的是進行這些轉換操作得有個前提條件:那就是引用COM相應的頭文件及庫,參見上面的代碼。

?

其實在上面的庫中有一對BSTR與char*之間互轉的函數:

char* ?_com_util::ConvertBSTRToString(BSTR pSrc);

BSTR??? ?_com_util::ConvertStringToBSTR(const?char* pSrc);

第一個函數將BSTR轉換成char*,第二個函數作相反的轉換,使用方法都很簡單,就不用贅述了!


轉載于:https://my.oschina.net/u/1469992/blog/275063

總結

以上是生活随笔為你收集整理的传递结构体变量解决方案,资料整理一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。