|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.04.2017, 03:08 | #1 |
Новичок
Джуниор
Регистрация: 03.04.2017
Сообщений: 2
|
Код из Delphi не работает в Lazarus
Добрый день!
Столкнулся с такой проблемой. Есть код по определению mac адреса. При компиляции в lazarus получаю ошибку unit1.pas(40,36) Error: Incompatible types: got "Char" expected "Byte" На эту строчку NCB.ncb_command := Char(NCBRESET); И так ругается на каждую строчку где используется Char; А в делфи работает все прекрасно. Помогите ребят) Код: uses nb30; function GetAdapterInfo(Lana: Char): string; var Adapter: TAdapterStatus; NCB: TNCB; begin FillChar(NCB, SizeOf(NCB), 0); NCB.ncb_command := Char(NCBRESET); NCB.ncb_lana_num := AnsiChar(Lana); if Netbios(@NCB) <> Char(NRC_GOODRET) then begin Result := 'Адрес не известен'; Exit; end; FillChar(NCB, SizeOf(NCB), 0); NCB.ncb_command := Char(NCBASTAT); NCB.ncb_lana_num := AnsiChar(Lana); NCB.ncb_callname := '*'; FillChar(Adapter, SizeOf(Adapter), 0); NCB.ncb_buffer := @Adapter; NCB.ncb_length := SizeOf(Adapter); if Netbios(@NCB) <> Char(NRC_GOODRET) then begin Result := 'Адрес не известен'; Exit; end; Result := IntToHex(Byte(Adapter.adapter_addre ss[0]), 2) + '-' + IntToHex(Byte(Adapter.adapter_addre ss[1]), 2) + '-' + IntToHex(Byte(Adapter.adapter_addre ss[2]), 2) + '-' + IntToHex(Byte(Adapter.adapter_addre ss[3]), 2) + '-' + IntToHex(Byte(Adapter.adapter_addre ss[4]), 2) + '-' + IntToHex(Byte(Adapter.adapter_addre ss[5]), 2); end; function GetMACAddress: string; var AdapterList: TLanaEnum; NCB: TNCB; begin FillChar(NCB, SizeOf(NCB), 0); NCB.ncb_command := Char(NCBENUM); NCB.ncb_buffer := @AdapterList; NCB.ncb_length := SizeOf(AdapterList); Netbios(@NCB); if Byte(AdapterList.length) > 0 then Result := GetAdapterInfo(Char(AdapterList.lan a[0])) else Result := 'Адрес не известен'; end; |
03.04.2017, 09:37 | #2 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Цитата:
Какая была Delphi? 7 10 ... была не Unicode версия Delphi и был Char ===Byte Lazarus это Unicode. и теперь AnsiChar ===Byte
программа — запись алгоритма на языке понятном транслятору
|
||
03.04.2017, 12:07 | #3 |
Новичок
Джуниор
Регистрация: 03.04.2017
Сообщений: 2
|
Dеlрhі 7.0/
Поменял char на ansichar=> unit1.pas(40,34) Error: Incompatible types: got "Char" expected "Byte" и точно так же ругается на строчки NCB.ncb_command := Char(NCBRESET);Ставил AnsiChar, ничего не изменилось, та же ошибка NCB.ncb_lana_num := AnsiChar(Lana); Так unit1.pas(42,39) Error: Incompatible types: got "Char" expected "QWord" на строчку if Netbios(@NCB) <> Char(NRC_GOODRET) then Так unit1.pas(51,21) Error: Incompatible types: got "Char" expected "NCB.Array[0..15] Of Byte" На NCB.ncb_callname := '*'; В uses использую nb30,windows; на форумах предлагали поменять windows на LCLIntf, LCLType, LMessages Попробовал при помощи лазаруса преобразовать проект из делфи. Hint: Модуль "Windows" в выражении Uses заменён на "LCLIntf, LCLType, LMessages". Это единственное что поменялось. И при компиляции ругается на Unit3.pas(30,12) Error: Identifier not found "TAdapterStatus" /// и ставил везде вместо Char=> Byte, скомпилировалось, заработало, но мак адрес не показывает.../// Cпасибо, разобрался...[Netbios is not supported on Windows Vista, Windows Server 2008, and subsequent versions of the operating system] Последний раз редактировалось GcrazyDV; 03.04.2017 в 16:33. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
помогите перевести код Pascal в код Lazarus | Ляйсан9517 | Lazarus, Free Pascal, CodeTyphon | 13 | 22.05.2014 17:19 |
помогите перевести код с VB в код Lazarus | Ляйсан9517 | Lazarus, Free Pascal, CodeTyphon | 2 | 22.04.2014 19:31 |
Надо перевести код с Паскаля в код Lazarus | Ляйсан9517 | Помощь студентам | 7 | 06.04.2014 22:44 |
Lazarus исправте код! | kolian2000 | Паскаль, Turbo Pascal, PascalABC.NET | 13 | 30.11.2012 20:57 |
кто может объяснить,почему на моем компе программа работает на других нет?код в Delphi | Symba | Общие вопросы Delphi | 1 | 24.03.2011 01:03 |