/********************************************************************************************/
//STDBSC组件
//********************************************************************************************/
[
uuid(90969BD6-0866-4E47-B5C8-A7C49D2E7C5E),
version(2.00),
helpstring("STD 2.0 Type Library (IEEE Std 1641)")
]
library STDBSC
{
importlib("stdole32.tlb");
importlib("stdole2.tlb"); //helper to forward declare interfaces and provide typedefs
#define INTDECL( i ) interface I##i; typedef I##i* i //看不懂什么叫INTDECL();
// INTDECL( SignalFunction );
//********************************************************************************************/
//ISFCollection
//********************************************************************************************/
[
object,
uuid(FAFB0CFA-2EEE-4d81-A84F-4B9F6AD0FEA7),
dual,
helpstring("ISFCollection Interface"),
pointer_default(unique)
] interface ISFCollection : IDispatch
{
//计数器
[propget, id(DISPID_NEWENUM), restricted ,helpstring("Enumerator")]
HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
//此项参数与STD有差异,返回SignalFunction的子项
[propget, id(DISPID_VALUE), helpstring("Returns the specified sub-item of the SignalFunction.")]
HRESULT Item([in] VARIANT varItem, [out, retval] SignalFunction* pVal);
};
///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(DBB38C1E-0C06-4EC1-8B1D-904914D4E62E),
helpstring("SFCollection Class")
]
coclass SFCollection
{
[default] interface ISFCollection;
};//********************************************************************************************/
//ISignalFunction
//********************************************************************************************/ [
object,
uuid(A29E2136-E439-4A76-B505-6C4F8DD61095),
dual,
helpstring("ISignalFunction Interface"),
pointer_default(unique)
]
interface ISignalFunction : IDispatch
{
enum {SIGNALFUNCTION_BASE=0};
//返回SignalFunction子项的一个合集
[propget, id(DISPID_VALUE), helpstring("Returns a collection of sub-items of this SignalFunction.")]
HRESULT SignalFunctions([out, retval] ISFCollection** pVal);
}; ///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(47B4F954-B47F-4329-A431-1455B8A506EC),
helpstring("SignalFunction Class")
]
coclass SignalFunction
{
[default] interface ISignalFunction;
};
};错误一:
直接编译,error MIDL2025 : syntax error : expecting a type specification near "SignalFunction"
若调换两个接口的书写顺序,错误变为error MIDL2025 : syntax error : expecting a type specification near "SFCollection"
错误二:
若不注释掉// INTDECL( SignalFunction );这句,提示错误error MIDL2003 : redefinition : SignalFunction
//STDBSC组件
//********************************************************************************************/
[
uuid(90969BD6-0866-4E47-B5C8-A7C49D2E7C5E),
version(2.00),
helpstring("STD 2.0 Type Library (IEEE Std 1641)")
]
library STDBSC
{
importlib("stdole32.tlb");
importlib("stdole2.tlb"); //helper to forward declare interfaces and provide typedefs
#define INTDECL( i ) interface I##i; typedef I##i* i //看不懂什么叫INTDECL();
// INTDECL( SignalFunction );
//********************************************************************************************/
//ISFCollection
//********************************************************************************************/
[
object,
uuid(FAFB0CFA-2EEE-4d81-A84F-4B9F6AD0FEA7),
dual,
helpstring("ISFCollection Interface"),
pointer_default(unique)
] interface ISFCollection : IDispatch
{
//计数器
[propget, id(DISPID_NEWENUM), restricted ,helpstring("Enumerator")]
HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
//此项参数与STD有差异,返回SignalFunction的子项
[propget, id(DISPID_VALUE), helpstring("Returns the specified sub-item of the SignalFunction.")]
HRESULT Item([in] VARIANT varItem, [out, retval] SignalFunction* pVal);
};
///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(DBB38C1E-0C06-4EC1-8B1D-904914D4E62E),
helpstring("SFCollection Class")
]
coclass SFCollection
{
[default] interface ISFCollection;
};//********************************************************************************************/
//ISignalFunction
//********************************************************************************************/ [
object,
uuid(A29E2136-E439-4A76-B505-6C4F8DD61095),
dual,
helpstring("ISignalFunction Interface"),
pointer_default(unique)
]
interface ISignalFunction : IDispatch
{
enum {SIGNALFUNCTION_BASE=0};
//返回SignalFunction子项的一个合集
[propget, id(DISPID_VALUE), helpstring("Returns a collection of sub-items of this SignalFunction.")]
HRESULT SignalFunctions([out, retval] ISFCollection** pVal);
}; ///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(47B4F954-B47F-4329-A431-1455B8A506EC),
helpstring("SignalFunction Class")
]
coclass SignalFunction
{
[default] interface ISignalFunction;
};
};错误一:
直接编译,error MIDL2025 : syntax error : expecting a type specification near "SignalFunction"
若调换两个接口的书写顺序,错误变为error MIDL2025 : syntax error : expecting a type specification near "SFCollection"
错误二:
若不注释掉// INTDECL( SignalFunction );这句,提示错误error MIDL2003 : redefinition : SignalFunction
解决方案 »
- 请教关于OPC Server端开发问题???
- 对话框上添加控件出错,怎么回事?没分了,有人能帮忙不
- 我的"components and controls gallery"中只有一个"mscreate.dir"怎么办?急!!!
- 继续提问
- 我在一台A(WIN2000)上共享了一打印机,在另一台想电脑B上使用共享打印机有关的问题!!
- 《VC++技术内幕》第四版p217,关于线程和MFC。比较急,谢谢!
- 到一个小公司作项目经理和到中兴去做软件测试,应该选择哪个?
- 使用SQL做的数据库应用程序,怎么移植到其他机器上运行?
- msado15.tlh是什么?请大虾指教~!
- 有没有人玩 Asynchronous Pluggable Protocols ,交流一下。(内空)
- VC6 按钮文本怎样实现竖排?
- mfc 数据库
主要是INTDECL从作用来看好像是预先声明这个组件类,但是网上找不到任何关于这个东西的资料。
而如果不加这个东西,接口1找不到接口2的声明(就是写在前面的接口找不到后面接口的声明)