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

Ваш аккаунт

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

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

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

ChartFX на C++ Builder 6

43K
23 ноября 2008 года
XeeD
5 / / 23.11.2008
Добрый день.

Данная тема однажды подымалась здесь на форуме, но ответа не последовало. Столкнулся с этой проблемой и сам, а разобраться в одиночку займёт непозволительно много времени.

Собственно, проблема:
Создал Application с использованием ChartFX. При компиляции без птички "Build with runtime packages" в свойствах проекта выдаёт "Unknown interface". Если птичка установлена, то экзешник запускается только на моей машине, а на других выдаёт ошибку "Класс незарегистрирован".
Если писать #import "cfx32.ocx" в Main.cpp, то компилятор находит кучу ошибок в cfx32.tli и cfx32.tlh.
Подскажите, пожалуйста, как сделать так, чтобы экзешник запускался на любой машине?

Спасибо.
1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
Необходимо зарегистрировать компонент прежде чем использовать его в приложении.
43K
23 ноября 2008 года
XeeD
5 / / 23.11.2008
Цитата: kot_
Необходимо зарегистрировать компонент прежде чем использовать его в приложении.



Можно более подробно описать как это сделать? А то мой уровень пока весьма низок.
Заранее благодарю.

1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
Ну например:
REGSRV32 "cfx32.ocx"
естественно выполнять это надо в папке в которой компонент лежит.
Кроме того, компонент можно зарегистрировать программно:
 
Код:
typedef HRESULT ((__import *DllRegisterSrv)())
DllRegisterSrv RegFunc = NULL;
Handle DLL = LoadLibrary("cfx32.ocx");
if(!DLL) return;
RegFunc = (DllRegisterSrv*)GetProcAddress(DLL, 'DllRegisterServer');
if(!RegFunc) return;
RegFunc();

я думаю идея понятна. Код не тестировался и не проверялся.
Да и вообщето снятие галочки не должно вызывать подобных эффектов. Версия билдера какая?
1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
Ну и естественно использование инсталлятора тоже поможет :)
43K
23 ноября 2008 года
XeeD
5 / / 23.11.2008
К сожалению, мне необходима более подробная инструкция :(.
Если вас не затруднит - объясните, пожалуйста, более доходчиво как зарегистрировать компонент программно.

Версия Builder 6.0.
1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: XeeD
К сожалению, мне необходима более подробная инструкция :(.
Если вас не затруднит - объясните, пожалуйста, более доходчиво как зарегистрировать компонент программно.

Версия Builder 6.0.


куда уж подробней то? Код вам приведен - все что нужно - это пробовать и читать справку.

43K
23 ноября 2008 года
XeeD
5 / / 23.11.2008
Цитата: kot_
куда уж подробней то? Код вам приведен - все что нужно - это пробовать и читать справку.



Пробовал вписать код в Main.cpp. Компилятор выдал море ошибок. Соответственно, что-то я делаю не так. А вот КАК нужно делать - этого я пока не понимаю и прошу помочь.

1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: XeeD
Пробовал вписать код в Main.cpp. Компилятор выдал море ошибок. Соответственно, что-то я делаю не так. А вот КАК нужно делать - этого я пока не понимаю и прошу помочь.


Я тоже телепатом не работаю и решать ваши задачи за вас решать не буду. С "морем ошибок" плавайте сами - догадываться о чем либо я не собираюсь

43K
23 ноября 2008 года
XeeD
5 / / 23.11.2008
Кусок Main.cpp
Код:
...
#pragma resource "*.dfm"

typedef HRESULT ((__import *DllRegisterSrv)())
DllRegisterSrv RegFunc = NULL;
Handle DLL = LoadLibrary("cfx32.ocx");
if(!DLL) return;
RegFunc = (DllRegisterSrv*)GetProcAddress(DLL, 'DllRegisterServer');
if(!RegFunc) return;
RegFunc();

TForm1 *Form1;
...


Ответ компилятора:

 
Код:
[C++ Error] Main.cpp(13): E2141 Declaration syntax error
[C++ Error] Main.cpp(14): E2040 Declaration terminated incorrectly
[C++ Error] Main.cpp(15): E2303 Type name expected
[C++ Error] Main.cpp(15): E2451 Undefined symbol 'DLL'
[C++ Warning] Main.cpp(15): W8098 Multi-character character constant
[C++ Error] Main.cpp(15): E2129 Character constant too long (or empty)
[C++ Error] Main.cpp(15): E2034 Cannot convert 'unsigned int' to 'const char *'
[C++ Error] Main.cpp(15): E2342 Type mismatch in parameter 'lpProcName' (wanted 'const char *', got 'unsigned int')
...
1
23 ноября 2008 года
kot_
7.3K / / 20.01.2000
мой юный друг - здесь не детский сад. если вы не знаете элементарных вещей в С++ - то это глубоко ваша проблема. Книга для начинающих и разбирайтесь в своих ошибках. Тема закрыта. Разберетесь в чем проблема - пишите мне открою снова.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог