Помогите пожалуйста. Пример на асме нормально работает и выдает нормальную (правильную) информацию о версии.
А вот пример на VB не могу заставить работать. Выдает какой-то мусор и приложение в конце еще трапается, вызывая журнал ошибок.
Что я делаю не так?
Это моя попытка юзать API у "встроеной" версии FireBird.
---- fb.inc ----
isc_get_client_version PROTO WORD
---- fb.inc ----
---- fb.asm ----
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib kernel32.lib
includelib user32.lib
; =====================
; InterBase FB Embedded
; =====================
include include\fb.inc
includelib include\fbembed.lib
.DATA
szTtl db "Example #1",0
szError db "An error has occured ",0
szVersion db 32 dup (0)
.CODE
start:
invoke isc_get_client_version,OFFSET szVersion
mov eax,OFFSET szVersion
mov al,[eax]
test al,al
jz @error
invoke MessageBox,0,OFFSET szVersion,OFFSET szTtl,MB_ICONINFORMATION
jmp @exit
@error:
invoke MessageBox,0,OFFSET szError,0,MB_ICONERROR
@exit:
invoke ExitProcess,0
END start
---- fb.asm ----
---- VB ----
Option Explicit
Public Declare Function GetClientVersion Lib "fbembed.dll" Alias "isc_get_client_version" () As Long
MsgBox GetClientVersion()
---- VB ----