描述:
请教各位大虾如何在vc下使用cl命令编译一个简单的com原代码和用midl命令编译接口文件://FirstSrv.idl
import "oaidl.idl";
[
object,
uuid(3ec1ed54-bd0a-4747-b018-cb79286d1ed2)
]
interface IFirstInterface:IUnknown
{
HRESULT DoSomething()
};
[
uuid(b7625d7f-38fa-4398-8ea5-8e49d189fe19),
version(1.0)
]
library FirstTypelib
{
importlib("stdole32.tlb");
[
uuid(e36d943e-2358-4516-818b-5f98760141d3)
]
coclass FirstComponent
{
[default] interface IFirstInterface;
};
};
#include <iostream>
#include <objbase.h>
using namespace std;
#ifndef IFACE_H
#define IFACE_H
interface IX
{
virtual void _stdcall FX1()=0;
virtual void _stdcall Fx2()=0;
};
interface IY
{
virtual void _stdcall Fy1()=0;
virtual void _stdcall Fy2()=0;
}
class ca:public IX,public IY{
virtual void _stdcall FX1(){cout<<"CA::FX1"<<endl;}
virtual void _stdcall FX2(){cout<<"CA::FX1"<<endl;}
virtual void _stdcall FY1(){cout<<"CA::FY1"<<endl;}
virtual void _stdcall FY2(){cout<<"CA::FY2"<<endl;}
};
#endif
#include <iostream>
#include <objbase.h>
#include "iface.h"
using namespace std;
void trace(const char* pMsg){cout<<pMsg<<endl;}
int main()
{
trace("Client:Create an instance of the component.");
ca* pA=new ca;
IX* pIX=pA;
trace("Client:Use the IX interface.");
pIX->FX1();
pIX->Fx2();
IY* pIY=pA;
trace("Client:Delete the component.");
delete pA;
return 0;
}