Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ComPort


Автор: 2508 3.5.2007, 17:50
Использую ComPort Library version 3.10 for Delphi 3, 4, 5, 6, 7, 2005, 2006  and C++ Builder 3, 4, 5, 6 by Dejan Crnila 1998-2002  maintained by Lars Dybdahl and Paul Doland... Данные господа не оказывают никакой поддержки.
Строка 
myComPort->Port = ComPort;    
вызывает ошибку:
[Linker Error] Unresolved external '__fastcall Cport::TCustomComPort::SetPortA(const System::AnsiString)' referenced from ...
Cport::TCustomComPort::SetPortA действительно не существует, зато есть:
void __fastcall SetPort(const AnsiString Value);
__property AnsiString Port = {read=FPort, write=SetPort};
Т.е. вышеуказанная строка должна вызывать SetPort, а вызывает SetPortA! Почему? Что делать? Возможные альтернативы.
Спасибо.

Автор: _hunter 3.5.2007, 18:26
Цитата(2508 @  3.5.2007,  17:50 Найти цитируемый пост)
Что делать?

читать прилагаему доку по установке. явно или либу не подключил или файлы в проект не добавил...

Автор: 2508 3.5.2007, 18:39
В конце 80-х Был в ЦК КПСС некто Егор Лигачев, который заявлял в адрес Ельцина:"Борис, ты не прав!". Не хочу уподоблятся товарищу Лигачеву, но лучшего ответа просто не вижу!
Хоть времена и меняются, но люди меняются значительно медленнее!

Автор: _hunter 3.5.2007, 18:49
ну а на какой ответ ты надеялся? или ты думаеш что все люди обязанны поюзать все выпущенные библиотеки?
что можно делать исходя из Unresolved external я сказал...

Автор: 2508 3.5.2007, 19:38
Во-первых, я надеялся, что тут люди вежливые (мы на ТЫ не переходили) и грамотные (думаешЬ пишется с мягким знаком). Во-вторых, если нет ответа, не стоит и отвечать - какой смысл? 
Очень попрошу увеличивать свой счетчик постов в каком-нибудь другом топике. Спасибо.

Автор: 2508 3.5.2007, 22:10
Для тех, кого действительно волнует или может встретиться аналогичная проблема.
После поиска на SetPort во всем борландовском фолдере я нашел причину проблемы:
файл winspool.h имеет такой код:
Код

#ifdef UNICODE
#define SetPort  SetPortW
#else
#define SetPort  SetPortA
#endif // !UNICODE

Teперь все ясно и просто имя SetPort  в пакете выбрано неудачно. Вариантов решения проблемы несколько, выбирай на свой вкус. Т.к. данная конкретная библиотека имеет исходный код, то я сменил имя SetPort  на SetComPort, переустановил пакет и могу подтвердить, что кто-то  был неправ!
Спасибо.

Автор: Klin 3.5.2007, 23:03
2508, на ты перешли Вы (если вам так угодно):

Цитата(2508 @  3.5.2007,  19:39 Найти цитируемый пост)
Борис, ты не прав!". Не хочу уподоблятся товарищу Лигачеву, но лучшего ответа просто не вижу!


Цитата(2508 @  3.5.2007,  23:10 Найти цитируемый пост)
переустановил пакет и могу подтвердить, что кто-то  был неправ!

Вы задали вопрос, на который может быть 101 ответ, вам подсказали, возможный выход из вашей проблемы. А пророков, у нас на форуме мало. Но не как пророк, а как здравомыслящий человек, скажу, что вы избрали не лучший метод просьбы о помощи. Удачи вам.

Автор: 2508 4.5.2007, 00:49
Цитата

если нет ответа, не стоит и отвечать - какой смысл? 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)