1 生成一个com dll,例:
2 使用mfc测试成功。
3 使用qtcreater创建一个新工程
设置一下: .pro
qt = qaxcontainer qaxserver
config = qaxcontainer
4 增加一个按键,增加其点击事件。
5 代码
#include //定义clsid等
#include //我们写的com接口,由atl wizard生成的头文件
//qstring 转 bstr
static inline bstr qstringtobstr( const qstring & str )
{ return sysallocstringlen(( olechar *) str .unicode(), str .length()); } void mainwindow ::on_pushbutton_clicked()
{
const clsid clsid_cgreet = { 0x1638ed3f , 0x43e1 , 0x11d6 ,{ 0x89 , 0xb2 , 0x00 , 0x01 , 0x03 , 0x02 , 0x15 , 0x8b }}; const iid iid_icgreet = { 0x1638ed3e , 0x43e1 , 0x11d6 ,{ 0x89 , 0xb2 , 0x00 , 0x01 , 0x03 , 0x02 , 0x15 , 0x8b }}; qaxobject link ( quuid ( clsid_cgreet ).tostring());
icgreet * psl = 0 ; link .queryinterface( iid_icgreet , ( void **)& psl ); if ( psl ) { char * mname = "test11111" ; qstring bstresult ( mname ); char ret [ 256 ]; bstr b = qstringtobstr( ret ); psl -> sayhello (qstringtobstr( bstresult ),& b ); qstring q_str (( qchar *) b , wcslen( b )); qmessagebox ::information(null, "title" , q_str , qmessagebox :: yes | qmessagebox :: no , qmessagebox :: yes ); psl -> release (); }} 用法和mfc基本一样。
怎样上传代码呢?
阅读(7996) | 评论(2) | 转发(0) |