|
|
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Можно ли при явном подключении библиотеки dll (через LoadLibrary) "достать" из нее экспортируемые данные (не функции)? (Если можно-то как) С экспортируемыми функциями все понятно, а вот с данными -? В примерах, которые нашел- только через неявное подключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 08:45 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Alex_VCМожно ли при явном подключении библиотеки dll (через LoadLibrary) "достать" из нее экспортируемые данные (не функции)? (Если можно-то как) С экспортируемыми функциями все понятно, а вот с данными -? В примерах, которые нашел- только через неявное подключение. нет, только если это не динамические структуры, которые возвращаются через какую нибудь функцию. DLL (как и другие библиотеки) - экспортируют только код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 09:22 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Вы можете экспортировать функции, которые вернут указатель на Ваши переменные-данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 10:16 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
А я вот как-то делал визардом проект на MFC так он мне шаблон накатал, в котором были экспортируемая функция, экспортируемая переменная и экспортируемый класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 16:40 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Да экспортировать можно ,в принципе , все , весь вопрос в том, что при неявном подключении библиотеки (когда в проект компилится хидер данной библиотеки (.h) ну и еще .lib в придачу), то там можно через общие сегменты памяти сделать (#pragma data_seg(".MYSEG")...) . А вот при явном- по-видимому низя (пришлось через функции делать). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 07:37 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Mr.Buba Alex_VCМожно ли при явном подключении библиотеки dll (через LoadLibrary) "достать" из нее экспортируемые данные (не функции)? (Если можно-то как) С экспортируемыми функциями все понятно, а вот с данными -? В примерах, которые нашел- только через неявное подключение. нет, только если это не динамические структуры, которые возвращаются через какую нибудь функцию. DLL (как и другие библиотеки) - экспортируют только код. Не говори, чего не знаешь. Закажи новый проект в AppWizard типа "Win32 DLL Library", выбери галку "A DLL that exports some symbols", скомпилируй ее и посмотри, как это "невозможно". Через "явное подключение" данные грузятся точно так же , как и функции, только функции вызываются, а данные используются потом как-то импортирующей программой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 12:46 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
MasterZiv Через "явное подключение" данные грузятся точно так же , как и функции, только функции вызываются, а данные используются потом как-то импортирующей программой. Извиняюсь, не дописал. Я имел в виду, что это делается той же функцией GetProcAdress: Platform SDK The GetProcAddress function retrieves the address of an exported function or variable from the specified dynamic-link library (DLL). FARPROC GetProcAddress( HMODULE hModule, LPCSTR lpProcName ); Parameters hModule [in] Handle to the DLL module that contains the function or variable. The LoadLibrary or GetModuleHandle function returns this handle. lpProcName [in] Pointer to a null-terminated string that specifies the function or variable name , or the function's ordinal value. If this parameter is an ordinal value, it must be in the low-order word; the high-order word must be zero. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 12:52 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
function or variable name от, спасиба! не замечал раньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2004, 07:29 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Дошли руки попробовать предложенное MasterZiv. Только толи руки не оттуда растут, толи голова... Вообщем, делаю так: в DLL: __declspec(dllexport) MyStr="Тест"; В приложении: hm=LoadLibrary("mydll.dll") typedef LPCSTR (*_typ_mystr); _typ_mystr _mystr; _mystr=(_typ_mystr)GetProcAddress(hm,"MyStr"); // Здесь _mystr принимает значение "Тест" // Как только в самой DLL изменяю занчение MyStr, то портиться _mystr в приложении : вместо строчки какая -то абракадабра... Что не так делаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 10:31 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Alex_VCв DLL: __declspec(dllexport) MyStr="Тест"; Где тип данных ? Alex_VC Что не так делаю? Да ты все не так делаешь. Только без типа данных твоей переменной говорить об этом бессмысленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 11:11 |
|
||
|
Переменные из DLL
|
|||
|---|---|---|---|
|
#18+
Понедельник - день тяжелый... Напарил с указателями сейчас все вроде заработало. А тип был LPCSTR, но когда в DLL шло изменение значения данной переменной, то указывался адрес локальной переменной : { MyStr=(LPCSTR)obj.m_string; } , значение которой успешно грохалось после выхода из области видимости. Поэтому все было плохо... Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2004, 12:21 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=432&tid=2034367]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 356ms |

| 0 / 0 |
