一个IDL问题
在COM技术初探〈二〉里有以下一个IDL文件,
import "oaidl.idl";
import "ocidl.idl";
[
uuid(FAEAE6B7-67BE-42a4-A318-3256781E945A),
helpstring("ISimpleMath interface"),
object,
pointer_default(unique)
]
interface ISimpleMath : public IUnknown
{
HRESULT Add([in] int a, [in] int b, [out,retval]int *pret);
HRESULT Sub([in] int a, [in] int b, [out,retval] int *pret );
HRESULT Mul([in] int a, [in] int b, [out,retval] int *pret );
HRESULT Div([in] int a, [in] int b, [out,retval] int *pret );
};
[
object,
uuid(01147C39-9DA0-4f7f-B525-D129745AAD1E),
helpstring("IAdvancedMath Interface"),
pointer_default(unique)
]
interface IAdvancedMath:public IUnknown
{
HRESULT Factorial([in]int nOp1,[out,retval]int * pret);
HRESULT Fabonacci([in]int nOp1,[out,retval]int * pret);
};
[
uuid(CA3B37EA-E44A-49b8-9729-6E9222CAE844),
version(1.0),
helpstring("MATHCOM 1.0 Type Library")
]
library MathLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(3BCFE27E-C88D-453C-8C94-F5F7B97E7841),
helpstring("MATH class")
]
coclass Math
{
[default] interface ISimpleMath;
interface IAdvancedMath;
};
};
出现以后错误:
--------------------Configuration: coma - Win32 Debug--------------------
Creating Type Library...
Microsoft (R) MIDL Compiler Version 5.01.0164
Copyright (c) Microsoft Corp 1991-1997. All rights reserved.
Processing E:\COM\examples\COMCHUTAN\coma\Math.idl
Math.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oaidl.idl
oaidl.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\objidl.idl
objidl.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\unknwn.idl
unknwn.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\wtypes.idl
wtypes.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\ocidl.idl
ocidl.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\oleidl.idl
oleidl.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\servprov.idl
servprov.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\urlmon.idl
urlmon.idl
Processing D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE\msxml.idl
msxml.idl
E:\COM\examples\COMCHUTAN\coma\Math.idl(12) : error MIDL2025 : syntax error : expecting { near "IUnknown"
E:\COM\examples\COMCHUTAN\coma\Math.idl(26) : error MIDL2025 : syntax error : expecting { near "IUnknown"
E:\COM\examples\COMCHUTAN\coma\Math.idl(52) : warning MIDL2214 : semantic check incomplete due to previous errors
Error executing midl.exe.
Math.tlb - 2 error(s), 1 warning(s)
不明其理!
还望请教!