您好我使用interop在Delphi中调用C#代码。 C#代码有二进制文件,在Delphi 5菜单中:项目 - >导入类型库 单击“添加”以添加tlb文件:XXXX.tlb 单元目录名称:输入生成delphi XXX_TLB.pas文件的路径。
如果C#dll,tlb和delphi XXX_TLB.pas已经存在。现在我在C#代码中再添加一个函数,希望Delphi也可以调用这个函数。我需要重新编译c#并重新生成delphi XXX_TLB.pas文件。但是按照上面的步骤,我看到新生成的XXX_TLB.pas包含我新添加的函数,但看起来像XXX_TLB.pas中的函数顺序与之前完全不同。
例如,在我的C#二进制文件中,我有以下功能: func1的(); FUNC2(); FUNC3(); func4(); //新添加
在旧的XXX_TLB.pas中,函数顺序为: func1的(); FUNC2(); FUNC3(); 现在XXX_TLB.pas是这样的: func1的(); FUNC3(); FUNC4(); FUNC2();
仍然可以使用XXX_TLB.pas,看起来没有功能差异,但是当我检查tfs时,我发现它从以前的版本变化很多。有没有办法让这个新的XXX_TLB.pas保持与以前相同的顺序,但也添加我的功能?怎么做?谢谢!
答案 0 :(得分:2)
除非您自己开始编写.pas文件,否则您无法将更改保持在最低限度。这听起来更糟糕。
可能发生的事情是,自上次导入以来,您已更改任一编译器的版本。否则人们会期望差异很小。
只需检查一下注释,说明使用了哪些版本的编译器和.ocx / .dll。
答案 1 :(得分:2)
据我所知,你不能。 在大多数情况下,无论如何我都可以将它们视为一种“黑匣子”,只是偶尔必须查看它们才能找到具体的声明。