|
|
|
| Курю HANDLE lib = LoadLibrary("myLib.dll"); | , как отсюда потом функции юзать? | |
|
|
|
|
 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, там описано какие сообщения можно посылать контролу
и чего он возвращает на разные сообщения
Без такого описания таких библиотек, наверное и половины возможностей из них нельзя узнать.
, хотя перехватывают как-то сообщения окну, я такое даже не пытался пробовать :) | |
|
|
|
|
|
|
|
для: ~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");
}
|
| |
|
|
|
|
|
|
|
для: EXP
(16.01.2010 в 06:56)
| | Понял, спасибо :)
Мне нужен просто .h файл :) | |
|
|
|
|
|
|
|
для: EXP
(16.01.2010 в 06:56)
| | оказалось чего-то я напутал там с masm и не работает :) не создаются новые строки таблицы
вообще диалоговые окна пока ещё не юзал особо, нужно начинать с начала, с простеньких DlgProc | |
|
|
|
|
|
|
|
для: exp
(16.01.2010 в 12:53)
| | >оказалось чего-то я напутал там с masm и не работает :) не создаются новые строки таблицы
>
>вообще диалоговые окна пока ещё не юзал особо, нужно начинать с начала, с простеньких DlgProc
Привет!!!
Может что то и напутал, с MASM, но в RaGrid_е, что бы вывести, результирующий набор из таблицы, надо заполнить структуру ROWDATA.
Я тоже бьюсь над этим. Читаю данные из таблицы (MySql), а вот правильно в грид впихнуть не получается. Есть конечно примеры, как это сделать, но они все сделаны под ODBC.
А с MASMa перевести на C++ наверное не сложно. | |
|
|
|
|
|
|
|
для: 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 - адрес структуры | |
|
|
|