社区
ATL
帖子详情
那位提供一个用C++编写COM的例子
WQ
2003-07-16 11:27:43
那位提供一个用C++编写COM的例子
...全文
80
7
打赏
收藏
那位提供一个用C++编写COM的例子
那位提供一个用C++编写COM的例子
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qrlvls
2003-10-31
打赏
举报
回复
潘老师的书上就有
rockrabbit
2003-10-31
打赏
举报
回复
谢谢,我也比较感兴趣。
nilm
2003-07-16
打赏
举报
回复
http://www.codeproject.com/com/com_server_without_mfc_atl.asp
WQ
2003-07-16
打赏
举报
回复
不用MFC和ATL
清泉ys
2003-07-16
打赏
举报
回复
http://www.vchelp.net/vchelp/type.asp?class_id=1&type_id=29
BoxFan
2003-07-16
打赏
举报
回复
//IServer.h
#include <iostream.h>
#include <objbase.h>
interface IX:IUnknown
{
virtual void __stdcall Fx()=0;
};
interface IY:IUnknown
{
virtual void __stdcall Fy()=0;
};
interface IZ:IUnknown
{
virtual void __stdcall Fz()=0;
};
// {76CFA0E6-60B0-4854-9A33-9FD3EC6E2494}
static const IID IID_IX =
{ 0x76cfa0e6, 0x60b0, 0x4854, { 0x9a, 0x33, 0x9f, 0xd3, 0xec, 0x6e, 0x24, 0x94 } };
// {C35BDC46-8F67-4ffc-969C-942F64E98725}
static const IID IID_IY =
{ 0xc35bdc46, 0x8f67, 0x4ffc, { 0x96, 0x9c, 0x94, 0x2f, 0x64, 0xe9, 0x87, 0x25 } };
// {F8F1980F-6075-4e06-83F5-C01A399B4130}
static const IID IID_IZ =
{ 0xf8f1980f, 0x6075, 0x4e06, { 0x83, 0xf5, 0xc0, 0x1a, 0x39, 0x9b, 0x41, 0x30 } };
class CA:public IX,public IY
{
public:
//IUnknown Implement
virtual HRESULT __stdcall QueryInterface(const IID &iid,void **ppv);
virtual ULONG __stdcall AddRef(){return 0;}
virtual ULONG __stdcall Release(){return 0;}
//Interface Implement
virtual void __stdcall Fx(){cout<<"FX"<<endl;}
virtual void __stdcall Fy(){cout<<"FY"<<endl;}
};
//IServer.cpp
#include "StdAfx.h"
#include "IServer.h"
extern void trace(char *pMsg);
HRESULT __stdcall CA::QueryInterface(const IID &iid,void **ppv)
{
if (iid==IID_IUnknown)
{
trace("QueryInterface return pointer to IUnknown");
*ppv=static_cast<IX*>(this);
}
else if (iid==IID_IX)
{
trace("QueryInterface return pointer to IX");
*ppv=static_cast<IX*>(this);
}
else if (iid==IID_IY)
{
trace("QueryInterface return pointer to IY");
*ppv=static_cast<IY*>(this);
}
else
{
trace("QueryInterface return pointer to null");
*ppv=NULL;
return E_NOINTERFACE;
}
reinterpret_cast<IUnknown*>(*ppv)->AddRef();
return S_OK;
}
这是我学习com时的例子
Skt32
2003-07-16
打赏
举报
回复
转载:
#include <iostream>
#import "scrrun.dll" raw_interfaces_only
int main()
{
CoInitialize(NULL);
{
try
{
Scripting::IFileSystem3Ptr fs;
fs.CreateInstance(__uuidof(Scripting::FileSystemObject));
Scripting::IFolderPtr folder;
fs->GetFolder(_bstr_t("c:\\temp"),&folder);
_variant_t vsize;folder->get_Size(&vsize);
std::cout<<"c:\\temp size:"<<(long)vsize<<" bytes"<<std::endl;
}
catch(_com_error &e)
{
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
std::cout<<"Get directory size via FileSystemObject, by masterz"<<std::endl;
std::cout<<"COM error occurred,source:"<<(LPCTSTR)bstrSource<<std::endl;
std::cout<<"Description:"<<(LPCTSTR)bstrDescription<<std::endl;
}
}
CoUninitialize();
return 0;
}
C++
编写
windows服务程序示例代码
使用
C++
编写
的windows服务程序示例代码,注释详尽,利用此模板可快速的将你现有程序移植为windows服务器程序。
数字图像处理与机器视觉原书pdf版
数字图像处理与机器视觉原书pdf版,书中
例子
用
C++
和Matlab
编写
,由于文件过大,光盘另外上传。
C++
语言基础视频教程
C++
语言基础视频培训课程:本课与主讲者在大学开出的程序设计课程直接对接,准确把握知识点,注重教学视频与实践体系的结合,帮助初学者有效学习。本教程详细介绍
C++
语言中的封装、数据隐藏、继承、多态的实现等入门知识;主要包括类的声明、对象定义、构造函数和析构函数、运算符重载、继承和派生、多态性实现等。课程需要有C语言程序设计的基础(可以利用本人开出的《C语言与程序设计》系列课学习)。学习者能够通过实践的方式,学会利用
C++
语言解决问题,具备进一步学习利用
C++
开发应用程序的基础。
Vlc播放rtsp视频demo-src.rar
Vlc播放rtsp视频demo-src 该
例子
使用VS2010
编写
第一章 开始 |
编写
一个
简单的
C++
程序
学习目标:
编写
一个
简答的
C++
程序 学习内容: 1、
一个
简单的
c++
程序 2、输入和输出 3、关于注释 4、控制流 5、类简介 6、书店程序 1.1
编写
一个
简单的
c++
程序 每个
C++
程序都包含
一个
或多个函数(function),其中
一个
必须命名为main。操作系统通过调用main来运行
c++
程序。 int main{ return 0; } 这是非常简单的的main函数,它什么也不干,只是返回给操作系统的
一个
值。
一个
函数的定义包含四部分:返回类型(return
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章