Серьезный вопрос по Длл...
От: Baggy  
Дата: 15.05.03 21:45
Оценка:
есть следующий глюк:
1. была длл1 — она вызвала длл2 и передала ей адрес на одну из своих функций ..
в длл 2 это было обработано в духе

typedef void (*myfunc)(char *);
myfunc my;
my =// здесь идет присваивание к переданному укзателю...
2. затем длл2 пытается вызвать эту функцию из длл1 — и успешно это делает —
но есть одна очень важная проблемка..
парметр который она передает — указатель — сильно меняется при передаче..
например при my("name");
в dll1 — полуаем ("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMname")

плиз — объясните этот факт ...
послдняя добавка — dll1 — написана на C,dll2 на С++

Спасибо...



17.05.03 11:42: Перенесено модератором из 'C/C++' — ПК
Re: Серьезный вопрос по Длл...
От: a_minadze Россия  
Дата: 16.05.03 07:57
Оценка:
Здравствуйте, Baggy, Вы писали:

B>парметр который она передает — указатель — сильно меняется при передаче..

B>например при my("name");
B>в dll1 — полуаем ("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMname")

B>плиз — объясните этот факт ...

B>послдняя добавка — dll1 — написана на C,dll2 на С++

B>Спасибо...


Используй не LPCHAR, а (LPCHAR far).
The darkness around me
Shores of solar sea
Oh how i wish to go down with the sun....
Re: Серьезный вопрос по Длл...
От: alf  
Дата: 16.05.03 08:06
Оценка:
Здравствуйте, Baggy, Вы писали:

B>typedef void (*myfunc)(char *);


попробуй явно задать тип вызова stdcall в обоих длл-ках
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.