Size: a a a

2021 March 25

D

Denisio in pro.net
какие плюсовые
источник

S

Stas in pro.net
Vyacheslav
ребят, вопрос есть. как P/Invoke работает? я могу как то иначе дернуть процедуру без P/Invoke например по её адресу?
источник

D

Denisio in pro.net
pinvoke посмотреть
источник

D

Denisio in pro.net
вангую следующий вопрос будет "как передавать параметры"
источник

D

Denisio in pro.net
именно поэтому я и предложил посмотреть исходники pinvoke
источник

E

EgorBo in pro.net
Vyacheslav
ребят, вопрос есть. как P/Invoke работает? я могу как то иначе дернуть процедуру без P/Invoke например по её адресу?
на винде можешь просто пинвокнуть GetProcAddress
источник

E

EgorBo in pro.net
типа такого GetProcAddress(GetModuleHandle("user32.dll"), "DefWindowProcW");
источник

V

Vyacheslav in pro.net
да, я что-то в этом роде и хотел ради интереса попробовать
источник

V

Vyacheslav in pro.net
просто я знаю что в плюсах можно GetProcAddress(modulehandle, "Proc")
источник

E

EgorBo in pro.net
ну это тоже самое
источник

V

Vyacheslav in pro.net
и потом дернуть в зависимости от callconv
источник

V

Vyacheslav in pro.net
> Преобразует делегат в указатель на функцию, вызываемый из неуправляемого кода.
источник

V

Vyacheslav in pro.net
Мне наоборот необходимо преобразовать функцию неуправляемого кода в делегат
источник

D

Denisio in pro.net
оно делает то что тебе нужно
источник

D

Denisio in pro.net
Marshal.GetFunctionPointerForDelegate
источник

V

Vyacheslav in pro.net
нет?
источник

V

Vyacheslav in pro.net
public static IntPtr GetFunctionPointerForDelegate<TDelegate> (TDelegate d);
источник

V

Vyacheslav in pro.net
мне нужно что-то наподобии
источник

D

Denisio in pro.net
ты хочешь из unmanaged дергать managed ?
источник

V

Vyacheslav in pro.net
public static TDelegate GetFunctionPointerForDelegate<TDelegate>(IntPtr d);
источник