Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

возвращение AnsiString из DLL

5.2K
24 апреля 2004 года
Sample
22 / / 24.04.2004
Здравствуйте.
У меня такая проблема: я написал связку программа + DLL, при вызове dll-функции передаю AnsiString. Передать –то передал а возвратить не возвращается!!!
DLL:
 
Код:
...
int _export loadset(AnsiString base, AnsiString name,int &shifr,AnsiString pass, int &passon)
{
ShowMessage(base);
base = 'fx';
ShowMessage(base);
return shifr,passon;
}
...

EXE объявление:
 
Код:
int __export loadset(AnsiString base,AnsiString name,int &shifr,AnsiString pass,int &passon);

EXE вызов:
 
Код:
loadset(Form2->Edit1->Text,Form2->Edit2->Text,shi,Form2->Edit3->Text,pas);

нужно что-бы в Form2->Edit1->Text попало fx, а там всё так и остаётся:( . Помогите!!
3
25 апреля 2004 года
Green
4.8K / / 20.01.2000
Ты знаком с такими понятиями, как указатель и ссылка?

Кроме того, что бы это значило:
base = 'fx';

и вот это:
return shifr,passon;
5.2K
25 апреля 2004 года
Sample
22 / / 24.04.2004
Цитата:
Originally posted by Green
Ты знаком с такими понятиями, как указатель и ссылка?

Кроме того, что бы это значило:
base = 'fx';

и вот это:
return shifr,passon;



Да я как вообще мало с чем знаком:) base = 'fx' это запихнуть в base строку fx.
return shifr,passon вернуть int значения. ну я же не всю программу написал здесь. остальные переменные он изменяет (int, float). Я раньше писал на BC++ 3.1 там, вроде, для массивов выделялась память. доступная всей программе для записи/чтения. или строка AnsiString это не массив? А можете объяснить, что делать или ссылочку на доку кинуть?

3
25 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Sample

Да я как вообще мало с чем знаком:) base = 'fx' это запихнуть в base строку fx.


тогда base = "fx" ;

Цитата:
Originally posted by Sample

return shifr,passon вернуть int значения.


В С/С++ так нельзя

Цитата:
Originally posted by Sample

А можете объяснить, что делать или ссылочку на доку кинуть?


Любая книга по C++, подойдет даже для начинающих, т.к. ты совершенно не знаком с языком. Без обид.

5.2K
27 апреля 2004 года
Sample
22 / / 24.04.2004
Цитата:
Originally posted by Green

тогда base = "fx" ;


В С/С++ так нельзя


Любая книга по C++, подойдет даже для начинающих, т.к. ты совершенно не знаком с языком. Без обид.


Да я не обижаюсь, книгу купил, но там визуальные компоненты, и чуть-чуть про DLL. Ну, все-таки можете написать, как правильно сделать надо?

487
27 апреля 2004 года
ddnh_bc
301 / / 16.09.2003
Цитата:
Originally posted by Sample
Здравствуйте.
У меня такая проблема: я написал связку программа + DLL, при вызове dll-функции передаю AnsiString. Передать –то передал а возвратить не возвращается!!!
DLL:
 
Код:
...
int _export loadset(AnsiString base, AnsiString name,int &shifr,AnsiString pass, int &passon)
{
ShowMessage(base);
base = 'fx';
ShowMessage(base);
return shifr,passon;
}
...

EXE объявление:
 
Код:
int __export loadset(AnsiString base,AnsiString name,int &shifr,AnsiString pass,int &passon);

EXE вызов:
 
Код:
loadset(Form2->Edit1->Text,Form2->Edit2->Text,shi,Form2->Edit3->Text,pas);

нужно что-бы в Form2->Edit1->Text попало fx, а там всё так и остаётся:( . Помогите!!



У тебя ошибка в определении. Если хочешь чтобы в анси-стринг заносилось значение - тогда объявляй так:

 
Код:
int __export loadset(AnsiString &base,AnsiString name,int &shifr,AnsiString pass,int &passon);
5.2K
28 апреля 2004 года
Sample
22 / / 24.04.2004
всем спасибо теперь заработало!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог