Wpis z mikrobloga

#programowanie #delphi #pcmasterrace
Mam w bibliotece DLL funkcję opisaną w dokumentacji w ten sposób:

int Mcp2210GetLibraryVersion(wchart *version)

Description: Provides the library version as NULL terminated UNICODE string. Parameters: Inputs: - none Outputs: - wchar_t *version - Pointer to buffer string of 64 bytes (MPC2210LIBRARYVERSIONSIZE) in size (So it can accommodate max 30 wide characters.) The version string, including the NULL terminator is copied in this buffer. Cannot be NULL. Returns: - positive value: version string size (bytes) including the null character - negative value: EERR_NULL (-10) if *version is NULL

Jak to wywołać z poziomu aplikacji konsolowej w Delphi i wyrzucić do okienka wersję biblioteki?
  • 3
@Xaveri: function aaa(str: pchar): integer; external 'x.dll' name 'Mcp22100GetLibraryVersion'

var
ver: array[0..VERSION
SIZE] of char;
begin
aaa(ver);
showmessage(string(ver));
end;

Pisze z głowy.
Jeśli masz Delphi < 2010 to pamietaj o typie (pwidechar).
@Dzyszla: No coś mi nie bangla. I nie bardzo wiem dlaczego bo błędu żadnego nie rzuca. Uruchomienie apki bez wywołania aaa = spoko. Jak tylko odkomentuję to się aplikacja zamyka w ułamek sekundy po uruchomieniu. Podejrzewam, że brakuje jej czegoś. Biblioteka pod C# wymaga dotnet4 zdaje się - przynajmniej w nazwie przykładowej aplikacji jest info...