2012-07-13 110 views
1

我想導入一個DLL,即msado15.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> Timestream.cpp(5):警告C4010:單行註釋包含行續字符 1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用'重命名'限定符1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用'重命名'限定符1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用'重命名'限定符1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用'重命名'限定符1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用'重命名'限定符1> Timestream.cpp(6):警告C4278:'RGB':類型庫'2DF8D04C-5BFA-101B-BDE5-00AA0044DE52'中的標識符已經是宏;使用「重命名」限定符

我如何得到這個工作,這是做的最好的方法是什麼?我已經看過有關msado15.dll的其他問題,但它們似乎存在不同的問題。

謝謝, 詹姆斯

+0

不要導入libid:...,導入msado15.dll。你的意思是什麼?「但是我不能用這個來分配任何東西。」我正在做的導入msado15.dll的方式和我的應用程序工作正常,可以分發。 – 2012-07-13 09:17:51

回答

2
#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

+0

非常感謝,非常感謝。 – James 2012-07-16 11:42:03