我正在尝试导入一个dll,即msado15.dll。我可以用解决方案做到这一点;
#import <C:\\Program Files\\Common Files\\System\\ado\\msado15.dll> \
rename( "EOF", "AdoNSEOF" )
但是我无法用它分发任何东西。
我已经尝试通过注册表并为它找到了一个libid,所以我正在尝试:
#import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" rename( "EOF", "AdoNSEOF" )
但我收到了这些错误
1&gt; Timestream.cpp(5):警告C4010:单行注释包含行继续符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符 1&gt; Timestream.cpp(6):警告C4278:'RGB':类型库'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的标识符已经是一个宏;使用'重命名'限定符
我如何让它工作,这是最好的方法吗?我查看了有关msado15.dll的其他问题,但它们似乎有不同的问题。
谢谢, 詹姆斯
答案 0 :(得分:3)
#import "libid:2DF8D04C-5BFA-101B-BDE5-00AA0044DE52" rename( "EOF", "AdoNSEOF" )
这是一个类型库,但它是错误的。这解释了你得到的所有错误。启动regedit.exe并导航到HKCR\TypeLib
并滚动到您要求的libid。请注意2.0 \ 0 \ win32键如何指向MSO.DLL。这是一个Office类型库。
要查找正确的guid,请从Visual Studio命令提示符运行OleView.exe。文件+查看Typelib并导航到msado15.dll。你会在顶部找到你需要的guid,库部分的uuid()属性:
uuid(B691E011-1797-432E-907A-4D8C69339129)
因此:
#import "libid:B691E011-1797-432E-907A-4D8C69339129" rename( "EOF", "AdoNSEOF" )
请注意,这是一个非常古老的,你应该使用msado28.tlb