| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Delphi > VB. Что не правильно? |
| Автор: Гость_Михаил 6.11.2004, 17:09 |
| Вопрос тем, кто знаком с Delphi и VB. Есть описание следующих структур на Delphi: //---------------------------------------------- TLine = Record Attr: byte; Line: string[17]; end; TTitle = record pos: integer; lines: array [1..2] of TLine; end; TBottom= record pos: integer; lines: array [1..2] of TLine; end; var Title1: TTitle; Bottom1: TBottom; //---------------------------------------------- Перевожу в VB: '------------------------------------------------ Public Type TLine Attr As Byte Lin(16) As Byte 'вместо строки заполняется массив значениями asc() строки End Type Public Type TTitle pos As Integer lines(1) As TLine End Type Public Type TBottom pos As Integer lines(1) As TLine End Type Global Title1 As TTitle Global Bottom1 As TBottom '------------------------------------------------- После заполнении переменных Title1, Bottom1 - указатели на них передаются во внешнюю функцию, объявленную как: VB: Declare Function func Lib "lib.dll" (ByVal T As Long, ByVal B As Long) As Integer Delphi: function func(t: pointer;b: pointer): integer;stdcall;external 'lib.dll; Сам вызов: В Delphi: func(@Title1,@Bottom1) В VB: func(VarPtr(Title1),VarPtr(Bottom1)) Результат: Вызов в VB работает не правильно. Функция вызывается, но данные, которые в нее передаются обрабатываются неверно. Есть подозрение, что структуры передаваемые в функции различаются, но как? Помогите кто может, уже неделю с ней парюсь. |