下面的命令所生成的程序集与在 myTest.tlb 中找到的类型库具有相同的名称,并且具有 .dll 扩展名。
下面的命令生成一个名为 myTest.dll 的程序集。
tlbimp myTest.tlb /out:myTest.dll
下面的命令生成一个名称与 MyModule.dll\1 所指定的类型库的名称相同且扩展名为 .dll 的程序集。MyModule.dll\1 必须位于当前目录中。
下面的命令为类型库 TestLib.dll 生成一个名为 myTestLib.dll 的程序集。/transform:dispret 选项将该类型库中的调度接口方法的任何 [out, retval] 参数转换为托管库中的返回值。
tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll
上例中的类型库 TestLib.dll 包含一个名为 SomeMethod 的调度接口方法,它返回 void 且具有一个 [out, retval] 参数。下面的代码是 TestLib.dll 中 SomeMethod 的输入类型库方法签名。
void SomeMethod([out, retval] VARIANT_BOOL*);
指定 /transform:dispret 选项会使 Tlbimp.exe 将 SomeMethod 的 [out, retval] 参数转换为 bool 返回值。以下是当指定 /transform:dispret 选项时,Tlbimp.exe 为托管库 myTestLib.dll 中的 SomeMethod 生成的方法签名。
如果使用 Tlbimp.exe 生成 TestLib.dll 的托管库时没有指定 /transform:dispret,则该工具为托管库 myTestLib.dll 中的 SomeMethod 生成以下方法签名。
void SomeMethod(out bool x);