Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];

Вниз

Переменные в DLL?   Найти похожие ветки 

 
Юрий Ж.   (2003-09-25 08:55) [0]

Здравствуйте мастера!
У меня вот какая проблема:
В DLL прописана переменная какого либо типа.
Из функции той же DLL она вызываетсы и из реестра получает значение.
Если потом из другой функции DLL вызывать эту переменную, то из нее не получаетсы получить значение.
Возможно описано не очень понятно, но...
Помогите!


 
Verg   (2003-09-25 09:02) [1]


> Возможно описано не очень понятно, но...


Да уж...
Лучше пример кода - как описана эта переменная, где, что значит
> не получаетсы получить значение.


Как это - не получается? Не дается, упирается, визжит, ругается матом? Что?


 
HolACost!   (2003-09-25 09:11) [2]

как я понял- есть глобальная переменная - одна фунция из ДЛЛ записывает туду значение, а другая считывает и возвращает!!! Так?
Проблему скорее всего в том, что всётаки тип у тебя какой-нить строковый!


 
HolACost!   (2003-09-25 09:14) [3]

Да и ещё - в одном процессы вызываешь эти переменные или в разных?


 
VAleksey   (2003-09-25 10:06) [4]

Проиллюстрируй кодом где
а) Описана переменная
б) Присваивается ей значение
г) Читается значение


 
panov   (2003-09-25 10:12) [5]

>HolACost! © (25.09.03 09:11) [2]

Неважно какого типа переменная. При использовании внутри DLL проблем быть не должно.


 
HolACost!   (2003-09-25 10:33) [6]

panov © (25.09.03 10:12) [5]
Имелось ввиду, что там может передаваться строка из одного процесса в другой или в рамках текущего!

А в пронципе - код в студию, хотя он помоему уже убёг!


 
PVOzerski   (2003-09-25 10:34) [7]

[5] - Если в рамках одного процесса.


 
panov   (2003-09-25 10:51) [8]

>PVOzerski © (25.09.03 10:34) [7]
[5] - Если в рамках одного процесса.

Использовать вызовы функций внутри DLL с передачей параметров любых типов, определенных внутри DLL, можно без ограничений.

Я имею ввиду такие конструкции:

var
GlobalInDLLVar: String;

//Эта функция не экспортируется
function MyFunc1(const AStr: String): String;
begin
if Length(aStr)>0 then Result := Copy(aStr,1,10)
else Result := "";
end;

//Эта функция экспортируется
function MyFuncExp:ShortString;stdcall;
begin
GlobalInDLLVar := StringOfChar("1",500);
Result := MyFunc1(GlobalInDLLVar);
end;

export
MyFuncExp;


 
Юрий Ж.   (2003-09-26 17:51) [9]

Я хочу уточнить(только что разобрался):
Когда я устанавливаю системный Hook на клавиатуру назначается функция обработки при сообщении, и если я уже вне этой функции проинициализировал переменную(даже до запуска Hook) то та не видит изменений.
Короче работает только если инициализировать прямо в этой функции.
Как от зтого избавиться?


 
Юрий Зотов   (2003-09-26 17:57) [10]

> Юрий Ж. (26.09.03 17:51) [9]

> то та не видит изменений.
Потому что инициализация происходит только в ОДНОМ процессе.

> Как от зтого избавиться?
Переменная должна быть глобальной по отношению ко ВСЕМ процессам в системе. См. на этом сайте статью Алексея Павлова по глобальным хукам.


 
Юрий Ж.   (2003-09-27 07:34) [11]

2 Юрий Зотов
Спасибо за совет!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-27727
Maximator Vetera
2003-09-20 19:39
2003.10.09
Архитектор программных систем - профессионал


1-27600
tos
2003-09-28 17:20
2003.10.09
glscene


3-27411
satron
2003-09-18 10:13
2003.10.09
Как сделать запись в таблице Paradox на французском языке


14-27644
___Nikolay
2003-09-19 05:42
2003.10.09
* Задача *


4-27769
Checist [root]
2003-07-25 02:30
2003.10.09
Hook на клавиши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский