|
|
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
В builder пытаюсь вызвать функцию CreateReestrFile из PRJ_Reestr.dll таким образом: typedef void (*pfuncCrtReestr)(TADOQuery); pfuncCrtReestr CrtReestr; HINSTANCE hLib = LoadLibrary("PRJ_Reestr"); if(hLib==NULL){ShowMessage("Не хватает PRJ_Reestr.dll");} else {ShowMessage("Все на месте!!!");} char dllpath[70]; GetModuleFileName((HMODULE)hLib,(LPTSTR)dllpath,70); CrtReestr = (pfuncCrtReestr)GetProcAddress((HMODULE)hLib, "CreateReestrFile"); CrtReestr (QueryClients) ; FreeLibrary((HMODULE)hLib); но компилятор не дает этого сделать и выдает ошибку VCL style classes must be constructed using operator new на строке CrtReestr (QueryClients). Теперь вопрос: как можно передать TADOQuery в процедуру находящуюся в dll. DLL написана на Delphi и ее можно изменять, но не знаю каким образом это необходимо сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2005, 11:29 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Передавать сложный класс в качестве параметра в функцию, да еще во внешнюю - это сильно! Но сложно... Откуда функция в dll знает, сколько памяти и как использует созданный вне dll объект? Может стоит передавать в фукцию только указатели на строку коннекта и на строку запроса, а в ней уже этот TADOQuery создавать, юзать и убивать?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 20:29 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Вопрос. DLL написана на Delphi, а эту функцию получается вызвать из exe-шника, написанного тоже на Delphi (с передачей ADOQuery)? Если да, то можно посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2005, 20:31 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
В том то и дело, что с Builder практически не работал. Работал тока в Delphi. И соответственно как в Builder работать правильно с указателями не знаю. DLL действительно пишу на Delphi, а вот exe как раз в Builder (все исходники есть). Пишу DLL на Delphi только потому что знаю его гораздо больше чем Builder. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 12:20 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Бильдер работает с VCL объектами только через указатели, передавай указатели, да и скорее всего именно указатель и передается в твоей ДЛЛ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 12:41 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Чтоб было понятнее. Функция принимает TADOQuery только для того чтобы взять из него данные и обработать их. Возвращает только true или false в зависимости от результата. Изменить код в билдере могу на указатели и соответственно подправить dll в делфи, но как правильно изменить в билдере на указатели как раз и не знаю. Просто создавать дополнительное подключение к БД не хотелось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 13:06 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
EvgeniyIshchenkotypedef void (*pfuncCrtReestr)(TADOQuery);поменять на Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 13:13 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Кстати, зачем именно на бильдере писать ? Делал бы все на дельфи ... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 13:14 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Сейчас попробую. Сменил место работы. В планах было переводить приложение на делфи. Но руководство приняло решение переводить все на ERP и соответственно переписывание под делфи не имеет смысла, но есть некоторые моменты которые очень устарели (в данном случае - работа с отчетами в Excel) и которые необходимо обновить (вернее переписать, т.к. написано было, мягко говоря, криво). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 13:21 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Нет, не получилось: Procedure CreateReestrFile (QueryClients: Pointer); begin if not TADOQuery(QueryClients^).Active then TADOQuery(QueryClients^).open; TADOQuery(QueryClients^).RecordCount; End; TADOQuery(QueryClients^).Active все хорошо, результат true, но TADOQuery(QueryClients^).RecordCount вызывает ексепшн. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 13:59 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
Задай-ка ты этот вопрос в дельфийном форуме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2005, 14:29 |
|
||
|
Помогите побороть ошибку ошибку VCL style classes must be constructed using operator new
|
|||
|---|---|---|---|
|
#18+
To Карабас Барабас Все оказалось очень просто. Обсуждение здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2005, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33342554&tid=2032557]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 386ms |

| 0 / 0 |
