[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    DLL must use. Покури процедуры и функции.
     
  2. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    помогите с dll...
    создал проект
    создал
    RC файл такого содержания
    BITMAP1 BITMAP "путь к картинке"
    откампилил
    откампилил dll
    в своём проекте подгружаю библиотеку,
    пытаюсь вытащить картинку в image
    image13.Picture.Bitmap.LoadFromResourceName(handle,'BITMAP1');
    выскакивает ошибка что типа такой ресурс не найден с таким именем...
    так какое же у него имя то?
     
  3. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Приведите код.
     
  4. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    firstfallen, если у тебя handle это не дескриптор загруженной DLL, то он будет указывать на дескриптор твоей формы (смотри сорс класса TForms), в которой нет BITMAP1, так как он в DLL.
    код примерно такой должен быть:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      hLib: THandle;
    begin
      ...
      hLib:= LoadLibrary('mydll.dll');
      if (hLib <> 0) then try
      ....
      image13.Picture.Bitmap.LoadFromResourceName(hLib, 'BITMAP1');
      ....
      finally
        FreeLibrary(hLib);
      end;
    end;
    
     
  5. 4ipolino

    4ipolino New Member

    Joined:
    24 Dec 2010
    Messages:
    27
    Likes Received:
    0
    Reputations:
    0
    ап :(
    помогите с парсингом текста
     
  6. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    hLib:= LoadLibrary('mydll.dll'); я делаю при загрузки формы.
    дальше я писал в точности такой же код
    image13.Picture.Bitmap.LoadFromResourceName(hLib, 'BITMAP1');
    но увы лезет ошибка,
    не без разницы динамически или нет она будет загружаться (dll)
     
  7. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    спс разобрался
     
  8. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    Как же всё таки по дебильному реализовано в Делфи работа с указателями...
    Code:
    [B]type[/B]
    	[COLOR=DarkOrange]MyStruct = record
    		var1: integer;
    		var2: integer;
    	end;[/COLOR]
    
    [B]var[/B]
    	[COLOR=Yellow]Blah[/COLOR]: [COLOR=DarkOrange]MyStruct[/COLOR];
    
    [B]procedure [/B]test(param1: [COLOR=DarkOrange]MyStruct[/COLOR]);
    [B]begin[/B]
    	param1.var1 := 1;
    	param1.var2 := 2;
    [B]end;[/B]
    
    [B]begin[/B]
    	test([COLOR=Yellow]Blah[/COLOR]);
    	writeln('var1 = ' + IntToStr([COLOR=Yellow]Blah.var1[/COLOR]));
    	writeln('var2 = ' + IntToStr([COLOR=Yellow]Blah.var2[/COLOR]));
            readln;
    [B]end.[/B]
    Ну объясните мне кто-то пожалуйста, какого черта Blah.var1 и var2 = 0, если должны равняться 1 и 2 соответственно?
     
  9. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Все нормально в Delphi реализовано, это ты сам ошибся.
    Процедура test должна быть так объявлена:
    Code:
    procedure test(var param1: MyStruct);
    Кстати, в этом коде работа с указателями не наблюдается.
     
    2 people like this.
  10. Sams

    Sams Member

    Joined:
    18 Apr 2009
    Messages:
    247
    Likes Received:
    70
    Reputations:
    17
    О Боги! Нет слов - одни эмоции :eek:
    Печаль, радость, бредовый смех с унылостью. Словно "Телепузиков" пересмотрел :(
    Это же надо так лохонуться...
    Chrome~, спасибо.


    Если копнуть на уровень ниже, в отладчике например, то наблюдается, еще и как ;)
     
  11. Skiper95

    Skiper95 New Member

    Joined:
    21 Sep 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    -5
    Как в TICQClient реализовать, что уин изпользовал Webaware(чтобы уины были видны в поиске, зелененьким цветом)

    применяю функцию
    SetAuthorization(false, true);

    второй флаг из этой функции должен включать данную фичу, но в поиске уин (серенький) - inv

    Посоветуйте что можно сделать?
     
  12. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    подскажите пожалуйста. использую компонент sqlconnection, ставлю активконнект на тру, выкидывает ошибку, не найдена библиотека libmysql.dll, скачал эту библиотеку, токо вот куда деть чтобы он её находил?
     
  13. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Nightmarе, пардон конечно, но этот код полное г...
     
  14. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Под рукой дельфы нет. Ты снифал запросы? код простой, но что бы понять что не так надо работать либо отладчиком либо сниффером...
     
  15. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Скинь эту библиотеку в папку со своей программой или в
    Code:
    C:\WINDOWS\system32\
    но лучше именно в папку с программой.

    Я бы не сказал, что он красиво оформлен или хорошо сделан. Скорее даже наоборот. Главная процедура в этом коде, которую ты должен вызывать из своей программы - Make. Она создает только один поток. Здесь не совсем хорошо составлен GET запрос, также он только отправляется, а ответ от сервера не принимается. Еще несколько недочетов есть. А этот коммент из исходника "количество потоков", это вообще бред. Запросы там отправляются синхронно и используется только один поток.
     
    #8375 Chrome~, 18 Jul 2011
    Last edited: 18 Jul 2011
    1 person likes this.
  16. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Код простой... и флудером это нащзвать тяжело... тем более использовать подобное для ддоса. Дело в том, что там запускается один поток, и в цикле отправляется 25 запросов. - что помоему очень глупо. Каждый запрос должен запускаться в новом потоке тогда все будет нормально...
     
  17. Skiper95

    Skiper95 New Member

    Joined:
    21 Sep 2009
    Messages:
    0
    Likes Received:
    3
    Reputations:
    -5
    Как в TICQClient реализовать, что уин изпользовал Webaware(чтобы уины были видны в поиске, зелененьким цветом)

    применяю функцию:
    SetAuthorization(false, true);

    второй флаг из этой функции должен включать данную фичу, но в поиске уин (серенький) - inv

    Посоветуйте что можно сделать?
     
  18. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    если бы так работало то я бы сюда не отписал бы, не работает даже если закинуть к либам в сам делфи
     
  19. _-SanNick-_

    _-SanNick-_ New Member

    Joined:
    10 May 2011
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Есть 3 процедуры , которые выполняют POST запрос. Как сделать так , чтоб каждая процедура запускалась в отдельном потоке?
    Пример:
    Code:
    procedure TNewThread.Execute; var PostData: TStringList; begin PostData:=TStringList.Create; PostData.Add('to='+Form1.Edit1.Text); PostData.Add('from='+Form1.Edit2.Text); Form1.idHTTP1.Post('http://сайтег.ru', PostData);
    А таких процедур 3 , и как запустить каждую , в отдельном потоке? Надеюсь понятно объяснил
     
  20. xophet

    xophet Member

    Joined:
    16 Apr 2011
    Messages:
    617
    Likes Received:
    49
    Reputations:
    5
    a:=TNewThread.create(false);
    b:=TNewThread.create(false);
    c:=TNewThread.create(false);
     
Thread Status:
Not open for further replies.