Delphi - база знаний
508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.

Как написать DLL, которую можно было-бы выполнить с помощью RunDll, RunDll32?


Как написать DLL, которую можно было-бы выполнить с помощью RunDll, RunDll32?




Вы должны определить в программе вызываемую снаружи функцию.

Функция должна быть __stdcall (или WINAPI, что то же самое ;)) и иметь
четыре аргумента. Первый - HWND окна, порождаемого rundll32 (можно
использовать в качестве owner'а своих dialog box'ов), второй - HINSTANCE
задачи, третий - остаток командной строки (LPCSTR, даже под NT),
четвертый - не знаю ;). Hапример,

int __stdcall __declspec(dllexport) Test 
 
508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later. ( 
  HWND hWnd, 
  HINSTANCE hInstance, 
  LPCSTR lpCmdLine, 
  DWORD dummy 
  ) 

MessageBox(hWnd, lpCmdLine, "Command Line", MB_OK); 
return 0; 


rundll32 test.dll,_Test@16 this is a command line 

выдаст message box со строкой "this is a command line".

Oleg Moroz
(2:5020/701.22)

function Test(
  hWnd: Integer;
  hInstance: Integer;
  lpCmdLine: PChar;
  dummy: Longint
  ): Integer; stdcallexport;
begin
  Windows.MessageBox(hWnd, lpCmdLine, 'Command Line', MB_OK);
  Result := 0;
end;

Akzhan Abdulin
(2:5040/55)

Давненько я ждал эту инфоpмацию! Сел пpовеpять и наткнулся на очень
забавную вещь. А именно -- пусть у нас есть исходник на Си пpимеpно такого
вида:

int WINAPI RunDll( HWND hWnd, HINSTANCE hInstance, LPCSTR lpszCmdLine, DWORD 
dummy ) 
...... 
int WINAPI RunDllW( HWND hWnd, HINSTANCE hInstance, LPCWSTR lpszCmdLine, DWORD 
dummy ) 
...... 

и .def-файл пpимеpно такого вида:

EXPORTS 
    RunDll 
    RunDllA=RunDll 
 
    RunDllW 

то rundll32 становится pазбоpчивой -- под HТ вызывает UNICODE-веpсию. Под
95, pазумеется, ANSI. Rulez.

Alexey A Popoff
pvax@glas.apc.org, posp@ccas.ru
http://www.ccas.ru/~posp/popov/pvax.html
(2:5020/487.26)Администрирование






Содержание раздела


508 Resource Limit Is Reached

Resource Limit Is Reached

The website is temporarily unable to service your request as it exceeded resource limit. Please try again later.