Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以让Delphi为导入的OLE/COM类型库自动生成事件支持代码?_Delphi_Events_Import_Ole_Typelib - Fatal编程技术网

是否可以让Delphi为导入的OLE/COM类型库自动生成事件支持代码?

是否可以让Delphi为导入的OLE/COM类型库自动生成事件支持代码?,delphi,events,import,ole,typelib,Delphi,Events,Import,Ole,Typelib,我正在尝试为Outlook 2003、2007和2010以及其他类似于与Delphi捆绑的Outlook 2000和2002 OLE服务器生成_TLB导入单元。但是,我无法让类型库导入器也生成代码,以便从绑定单元中的OLE服务器捕获事件。生成组件包装的选项仅为可直接实例化的服务器创建包装,而不为仅通过TInspector、TExplorer等其他对象的方法返回的对象创建包装 当然,我可以自己创建事件处理代码,但那将是非常乏味的工作 有人知道Delphi 2010 tlibimp.exe中包含的导

我正在尝试为Outlook 2003、2007和2010以及其他类似于与Delphi捆绑的Outlook 2000和2002 OLE服务器生成_TLB导入单元。但是,我无法让类型库导入器也生成代码,以便从绑定单元中的OLE服务器捕获事件。生成组件包装的选项仅为可直接实例化的服务器创建包装,而不为仅通过TInspector、TExplorer等其他对象的方法返回的对象创建包装

当然,我可以自己创建事件处理代码,但那将是非常乏味的工作

有人知道Delphi 2010 tlibimp.exe中包含的导入程序是否可以调整以生成该代码吗?我真的怀疑Borland当年手动创建了现有的Outlook2000.pas和OutlookXP.pas单元


可能还有其他工具可以做到这一点吗?

好问题!我从未注意到这些组件不是创建的,我只使用Word_TLB。在玩了一点tlibimp之后,我发现您需要-Yc+标志。可能所有忽略标志都是默认启用的


注意:这是Delphi 7上的tlibimp.exe 7.0.4.453版

Oliver检查此链接@RRUZ:谢谢。我知道那篇文章。这实际上是我的出发点。但不幸的是,没有关于生成事件包装的信息,特别是对于不可创建的服务器…谢谢,但不幸的是,这方面没有什么好消息。我还有两门课要上,包括事件!还有我不使用文件夹?!通过使用-Ya+选项,但仅此而已。。。生成的文件中仍然没有TInspector或TExplorer…:顺便说一句:tlibimp.exe的命令行帮助指示每个选项的默认状态,并根据我的测试进行验证-Yc在默认情况下已处于i.e.+状态。@Oliver Giesen:我使用了Delphi 7中的tlibimp.exe。当我使用//------P+-IC-IP-HA+H-+HS+-CW -PS+-P+-O+-X+-W+-WC+-YC--YH-YP-Y-Y-YAU-默认C++选项时,默认选项是:不包括,所以我只将-Yc选项改为-+ +,它对我起作用。@ ThyFox:您的TLIbIMP.EXE报告的版本号是多少?我的是Delphi2010中的12.16580,默认值是-Ha+-Hs+-Hr+-Ps+-Pt--O+-R+-XM--W+-Wc+-Ya--Yh--Yc+-Yp--Yr我跳过了特定于C++的部分。我这里还有德尔福2007和2009。我试试看。如果他们能做到这一点,那么整个问题似乎是tlibimp.exe新版本中的一个bug。。。顺便问一下:您为哪个版本的Outlook生成了_TLB.pas?我目前正在尝试使用2010…我在一个旧盒子中找到了一张Delphi 7 CD,并且能够在其上运行tlibimp.exe,而无需安装整个设备,并且可以正常工作!:谢谢!使用-Ya+,意味着-Yc+,我现在得到了我想要的单位。你能不能在你的回答中添加关于Delphi 7的信息,这样我就可以接受?因此,对于较新版本的进口商来说,这肯定是一个问题。去QC。。。