Форум: Форум C++Разное
Новые темы: 00
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как юзать DLL?
 
 автор: ~AquaZ~   (15.01.2010 в 20:14)   письмо автору
 
 

Курю
HANDLE lib = LoadLibrary("myLib.dll");
, как отсюда потом функции юзать?

  Ответить  
 
 автор: EXP   (16.01.2010 в 06:51)   письмо автору
36.2 Кб
 
   для: ~AquaZ~   (15.01.2010 в 20:14)
 

Длл практически отличается от exe только тем как её вызывают.
И вместо Main() в ней DllMain()
, просто при загрузке её эта main может тоже чего-нибудь выполнять
, поэтому не стоит вызавать функции из всех подряд длл :)

То что Вам нужно , как я понял, это называется CustomControls
, в виндовс похоже себя ведёт например RichEdit.dll, она просто подружается
, вроде по имени класса контрола/окна определяет с чем работать
, и в сообщениях контролу можно посылать то что задумано.

Ketil Olsen aka KetilO (если не путаю фамилию,) например выложил один из таких CustomControls http://www.asmcommunity.net/board/index.php?board=36.0
RaGrid
правда он кодит на ассемблере , и я половину ночи переделывал простую програмку с masm на си ,)
,) налепил я там конечно как всегда не профессионально но окно показалось
и давно хотел поразбираться с этим контролом
(IDE у KetilO самая мне из IDE понравившаяся, RadAsm , больше под ассемблер правда, но под msvc тоже настраивается)

там по ссылке скачать можно несколько примеров использования и исходники, всё на masm'е
файл.lib, вроде статично тоже прилинковывается в exe-файлы
, но это не то чего вам хочется :) просто нашёл чего проще объяснить

В прикреплении например файл RaGrid.h, там описано какие сообщения можно посылать контролу
и чего он возвращает на разные сообщения
Без такого описания таких библиотек, наверное и половины возможностей из них нельзя узнать.
, хотя перехватывают как-то сообщения окну, я такое даже не пытался пробовать :)

  Ответить  
 
 автор: EXP   (16.01.2010 в 06:56)   письмо автору
 
   для: ~AquaZ~   (15.01.2010 в 20:14)
 

вот из msdn пример как использовать GetProcAddress()
, там ещё номер вместо имени функции можно использовать

// A simple program that uses LoadLibrary and 
// GetProcAddress to access myPuts from Myputs.dll. 
 
#include <stdio.h> 
#include <windows.h> 
 
typedef int (*MYPROC)(LPTSTR); 
 
VOID main(VOID

    HINSTANCE hinstLib; 
    MYPROC ProcAdd; 
    BOOL fFreeResult, fRunTimeLinkSuccess = FALSE
 
    // Get a handle to the DLL module.
 
    hinstLib = LoadLibrary(TEXT("myputs")); 
 
    // If the handle is valid, try to get the function address.
 
    if (hinstLib != NULL) 
    { 
        ProcAdd = (MYPROC) GetProcAddress(hinstLib, TEXT("myPuts")); 
 
        // If the function address is valid, call the function.
 
        if (NULL != ProcAdd) 
        {
            fRunTimeLinkSuccess = TRUE;
            (ProcAdd) (TEXT("Message via DLL function\n")); 
        }
 
        // Free the DLL module.
 
        fFreeResult = FreeLibrary(hinstLib); 
    } 
 
    // If unable to call the DLL function, use an alternative.
 
    if (! fRunTimeLinkSuccess) 
        printf("Message via alternative method\n"); 
}

  Ответить  
 
 автор: ~AquaZ~   (16.01.2010 в 12:49)   письмо автору
 
   для: EXP   (16.01.2010 в 06:56)
 

Понял, спасибо :)
Мне нужен просто .h файл :)

  Ответить  
 
 автор: exp   (16.01.2010 в 12:53)   письмо автору
 
   для: EXP   (16.01.2010 в 06:56)
 

оказалось чего-то я напутал там с masm и не работает :) не создаются новые строки таблицы

вообще диалоговые окна пока ещё не юзал особо, нужно начинать с начала, с простеньких DlgProc

  Ответить  
 
 автор: cain52   (25.04.2018 в 06:59)   письмо автору
 
   для: exp   (16.01.2010 в 12:53)
 

>оказалось чего-то я напутал там с masm и не работает :) не создаются новые строки таблицы
>
>вообще диалоговые окна пока ещё не юзал особо, нужно начинать с начала, с простеньких DlgProc

Привет!!!
Может что то и напутал, с MASM, но в RaGrid_е, что бы вывести, результирующий набор из таблицы, надо заполнить структуру ROWDATA.
Я тоже бьюсь над этим. Читаю данные из таблицы (MySql), а вот правильно в грид впихнуть не получается. Есть конечно примеры, как это сделать, но они все сделаны под ODBC.
А с MASMa перевести на C++ наверное не сложно.

  Ответить  
 
 автор: cain52   (21.06.2018 в 06:56)   письмо автору
 
   для: cain52   (25.04.2018 в 06:59)
 

Да перевести с MASMA на С++ можно.
А новые строки в RAGRIDE создаются при занесении в него данных.
invoke SendMessage, hGrd, GM_ADDROW,0, addr rowdta

hGrd - дискриптор контрола RAGrid
GM_ADDROW - функция из RAGril.dll
(GM_ADDROW equ WM_USER+2 ;wParam=0, lParam=lpROWDATA (can be NULL)
addr rowdta - адрес структуры

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования