佚名通过本文主要向大家介绍了c#调用com组件,com组件调用,java调用com组件,qt调用com组件,vb调用com组件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于com组件调用问题
描述:
#import "libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE"
void main()
{
CoInitialize(NULL);
{
IHelloPtr SayHello = NULL;
SayHello.CreateInstance(__uuidof(Hello));
SayHello->SayHello();
}
CoUninitialize();
}
当使用#import "TestATL.dll" no_namespace程序是没有错误的
但是在网上找到关于引用库时候好像可以用ID进行引用 当我自己在做实验(#import "libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE")的时候总是报错误找不到引入文件 感觉好像是id有问题或者还是其他原因 请高手指点
以下是 com的idl文件
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(ACE75EC4-DAEB-44D9-9F51-37E61AB959DE),
dual,
helpstring("IHello Interface"),
pointer_default(unique)
]
interface IHello : IDispatch
{
[id(1), helpstring("method SayHello")] HRESULT SayHello();
};
[
uuid(ACBCE0D1-F2B5-4CA7-A357-6A8A629F0AF5),
version(1.0),
helpstring("TestATL 1.0 Type Library")
]
library TESTATLLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(C92B4395-2EB0-446A-B00A-779E17EEB8ED),
helpstring("Hello Class")
]
coclass Hello
{
[default] interface IHello;
};
};
到底应该用哪个id 还是我的写法有问题 谢谢!
开发环境是vc6.0 com使用ATL创建
错误信息fatal error C1083: Cannot open type library file: 'libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE': No such file or directory
解决方案1:
描述:
本帖最后由 tails5658 于 2012-02-20 21:55:25 编辑
//#import "TestATL.dll" no_namespace#import "libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE"
void main()
{
CoInitialize(NULL);
{
IHelloPtr SayHello = NULL;
SayHello.CreateInstance(__uuidof(Hello));
SayHello->SayHello();
}
CoUninitialize();
}
当使用#import "TestATL.dll" no_namespace程序是没有错误的
但是在网上找到关于引用库时候好像可以用ID进行引用 当我自己在做实验(#import "libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE")的时候总是报错误找不到引入文件 感觉好像是id有问题或者还是其他原因 请高手指点
以下是 com的idl文件
import "oaidl.idl";
import "ocidl.idl";
[
object,
uuid(ACE75EC4-DAEB-44D9-9F51-37E61AB959DE),
dual,
helpstring("IHello Interface"),
pointer_default(unique)
]
interface IHello : IDispatch
{
[id(1), helpstring("method SayHello")] HRESULT SayHello();
};
[
uuid(ACBCE0D1-F2B5-4CA7-A357-6A8A629F0AF5),
version(1.0),
helpstring("TestATL 1.0 Type Library")
]
library TESTATLLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(C92B4395-2EB0-446A-B00A-779E17EEB8ED),
helpstring("Hello Class")
]
coclass Hello
{
[default] interface IHello;
};
};
到底应该用哪个id 还是我的写法有问题 谢谢!
开发环境是vc6.0 com使用ATL创建
错误信息fatal error C1083: Cannot open type library file: 'libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE': No such file or directory
解决方案1:
试了一下,在VS08下用
#import "libid:{ACBCE0D1-F2B5-4CA7-A357-6A8A629F0AF5}"
这样可以,但是在6.0下失败
用的是ACBCE0D1-F2B5-4CA7-A357-6A8A629F0AF5
解决方案3: #import "libid:ACE75EC4-DAEB-44D9-9F51-37E61AB959DE")
红色的删掉