1
#import Directive用於C++導入類型庫。 「no_registry」屬性告訴編譯器不要在註冊表中搜索類型庫。免費註冊COM互操作。組件B參考組件A?
例:
#import "XXX.tlb" no_namespace named_guids no_registry
Quastion: 我想做同樣的事情在delphi: 我知道TLIBIMP被使用,但我找不到像no_registry
任何屬性。
例:
TLIBIMP "XXX.tlb" ????
如何做到這一點,或者是這甚至可能嗎?
UPDATE:
我有並排並排端組件。 (A)的COM
組件(B)。 錯誤可能在清單文件中。 如何在清單中定義依賴關係? 我如何使用Tlbexp.exe
來定義依賴關係? 我已經嘗試:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
manifestVersion="1.0">
<assemblyIdentity
type="win32"
name="CommonInteropB"
version="1.0.0.0"
publicKeyToken="" />
<clrClass
clsid="{XXXXXXXXX}"
progid="CommonInteropB.SomeFactory"
name="CommonInteropB.SomeFactory"
threadingModel="Both" tlbid="{XXXXXXXXXXXXXXXX}"
runtimeVersion="v4.0.30319" />
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="CommonInteropA"
version="1.0.0.0"
publicKeyToken="" />
</dependentAssembly>
</dependency>
</asmv1:assembly>
,並創建類型庫:
tlbexp.exe CommonInteropB.dll /tlbreference:"CommonInteropA.tlb" /tlbreference:"C:\Windows\System32\stdole2.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.tlb" /out:CommonInteropB.tlb
我沒有看到任何TLIBIMP選項。您可以在IDE中導入它們(組件 - >導入組件 - >導入類型庫,然後點擊下一頁上的添加按鈕),但我不知道在命令行上有這樣做的方法。 –