Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
igor-x
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 8
#1

Как правильно вызвать функцию? - C++

14.02.2011, 11:06. Просмотров 1165. Ответов 4
Метки нет (Все метки)

Добрый день.

подскажите как исправить ошибку:

C++
1
2
3
TAsync * Async ;
Async = new TAsync;
ComPort-> WriteStrAsync(ServerEdit->Text,Async );
в результате - сообщение об ошибке во время выполнения - invalid pointer operation.
похоже неверно сделан вызов ComPort-> WriteStrAsync ?

для справки строки из comport.hpp:

C++
1
2
3
4
5
6
7
8
9
//----
int __fastcall WriteStrAsync(const AnsiString Str, PAsync &AsyncPtr);
//---
typedef TAsync *PAsync;
 
class DELPHICLASS TComLink;
class PASCALIMPLEMENTATION TComLink : public System::TObject 
{
typedef System::TObject inherited;
--
Спасибо !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2011, 11:06     Как правильно вызвать функцию?
Посмотрите здесь:

Как правильно вызвать пользовательскую ф-цию C++
C++ Как вызвать функцию?
Как правильно вызвать метод в С++ и как использовать команду goto в default C++
C++ Как правильно вызвать эту функцию?
C++ Как правильно создать функцию и затем вызвать ее
Как правильно вызвать функцию с указателем на другую функцию как параметр C++
C++ Как правильно вписать функцию в h-файл и правильно её отразить в основной функции?
Как правильно вызвать функцию? C++
Как правильно вызвать конструктор вектора в данном случае? C++
C++ Как правильно вызвать методы, чтобы передать весь массив объектов
Как вызвать функцию из .h в main ? C++
Как можно правильно вызвать apply в следующей ситуации... C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
14.02.2011, 11:59     Как правильно вызвать функцию? #2
Попробуй звездочку поставить
C++
1
ComPort-> WriteStrAsync(ServerEdit->Text, *Async );
Добавлено через 1 минуту
А ServerEdit к этому моменту существует?
igor-x
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 8
14.02.2011, 12:08  [ТС]     Как правильно вызвать функцию? #3
Цитата Сообщение от Day Посмотреть сообщение
Попробуй звездочку поставить
C++
1
ComPort-> WriteStrAsync(ServerEdit->Text, *Async );
Добавлено через 1 минуту
А ServerEdit к этому моменту существует?
без звездочки он не компилировался , поставил звездочку - при выполнении этой команды возникает ошибка "Access violation at address xxxx in module BORLANDMM.DLL. Read of address xxxxx"

ServerEdit - он на форме расположен , TEdit

если заменяю на ComPort->WriteStrAsync("123", *Async ); ошбка таже - "Access violation...."
Asazeus
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 4
09.12.2012, 09:53     Как правильно вызвать функцию? #4
Может кому пригодится..

Нужно писать:
C++
1
2
3
4
5
TAsync* Async;
Async = new TAsync;
InitAsync(Async);
 
ComPort1->WriteStrAsync("стринг",Async);
Elefanov
Сообщений: n/a
16.09.2014, 08:22     Как правильно вызвать функцию? #5
Функция InitAsync самостоятельно выделяет память. По завершению использования вызвать DoneAsync. Правильнее будет так:
C++
1
2
3
TAsync* Async;
InitAsync(Async);
ComPort1->WriteStrAsync("стринг",Async);
Yandex
Объявления
16.09.2014, 08:22     Как правильно вызвать функцию?
Ответ Создать тему
Опции темы

Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru