Как сохранить сгенерированный файл TLB в чистоте? - PullRequest
2 голосов
/ 12 января 2012

Привет, я использую взаимодействие для вызова кода C # в Delphi. Код C # имеет двоичный файл и в Delphi 5 Меню: Проект -> Библиотека типов импорта Нажмите кнопку Добавить, чтобы добавить файл tlb: XXXX.tlb Имя dir модуля: введите путь, по которому создается файл 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 в том же порядке, что и раньше, но добавить и мою функцию? Как это сделать? Спасибо!

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Вы не можете, насколько я знаю.В большинстве случаев я в любом случае могу рассматривать их как своего рода «черный ящик», и лишь изредка мне приходится заглядывать в них, чтобы найти конкретное объявление.

2 голосов
/ 12 января 2012

Вы не можете надеяться свести изменения к минимуму, если не начнете писать файл .pas самостоятельно. Это звучит как худший вариант.

Вероятно, происходит то, что вы изменили версию любого из ваших компиляторов с момента последнего импорта. В противном случае можно ожидать минимальных различий.

Просто отметьте это с комментарием, указав, какие версии компилятора и .ocx / .dll были использованы.

...