|
|
#1
|
|||
|
|||
LoadLibrary
Не могу разобраться почему функция GetProcedureAddress не работает. И GetModuleHandle и LoadLibrary возвращают 0.
Код:
procedure GetProcedureAddress(var P: Pointer; const ModuleName, ProcName: string); var ModuleHandle: HMODULE; begin if not Assigned(P) then begin ModuleHandle := GetModuleHandle(PAnsiChar(ModuleName)); if ModuleHandle = 0 then begin ModuleHandle := LoadLibrary(PAnsiChar(ModuleName)); if ModuleHandle = 0 then Exit; end; P := Pointer(GetProcAddress(ModuleHandle, PAnsiChar(ProcName))); if not Assigned(P) then Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); var P: Pointer; begin P := nil; GetProcedureAddress(P, 'kernel32.dll', 'GetVersionExA'); end; |
#2
|
|||
|
|||
Код:
AnsiString Код:
procedure GetProcedureAddress(var P: Pointer; const ModuleName, ProcName: AnsiString); |
Этот пользователь сказал Спасибо Zorkov Igor за это полезное сообщение: | ||
xteam777 (19.05.2018)
|
#3
|
|||
|
|||
Внутри такой конструкции
Код:
PAnsiChar( AnsiString ) |
Этот пользователь сказал Спасибо Zorkov Igor за это полезное сообщение: | ||
xteam777 (19.05.2018)
|
#4
|
|||
|
|||
Спасибо. Действительно.
Код:
var s: String; sa: AnsiString; p1, p2: PansiChar; begin s := 'asd123'; sa := 'asd123'; p1 := PAnsiChar(s); p2 := PAnsiChar(sa); p1 = 'a' p2 ='asd123' Почему идет обрезание строки? Последний раз редактировалось Admin, 19.05.2018 в 16:20. |
#5
|
|||
|
|||
F1 Help
|
#6
|
|||
|
|||
1. Размер Юникод символа сколько байт?
2. Размер Анси символа сколько байт? |