powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача функции как параметр...
4 сообщений из 4, страница 1 из 1
Передача функции как параметр...
    #33915538
MIVer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая проблема, подключаю сторонию библеотеку написанную на C++
в ней есть функция которая получает как параметр другую функцию если кто знает как это сделать в FoxPro 6.0 подскажите, буду очень благодарен
...
Рейтинг: 0 / 0
Передача функции как параметр...
    #33915750
MIVer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сразу ещё один вопрос по поводу подключения библиотек

Подключаю библиотеку

DECLARE INTEGER getCommandString IN FoxAdapter.dll;
String @byfer, integer maxSize

При оброшенни к этой функции выдаёт ошибку

Cannot find entry point getCommandString in the Dll

Библиотека написанна на C++
Может кто знает в чём проблемма.

И ещё один вопрос как указать в какой директории находится библиотека?
...
Рейтинг: 0 / 0
Передача функции как параметр...
    #33915934
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, скорее всего не функцию, а адрес функции.
Во-вторых, в самом фоксе нет средств работы с указателями.
Вывод: написать оболочку хоть на том же С++, прячущую от фокса адресную арифметику.
...
Рейтинг: 0 / 0
Передача функции как параметр...
    #33917747
MFoxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На:
1)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Local lcNameProc 
lcNameProc  = "TrueAdress()"
? &lcNameProc  

Procedure TrueAdress()
   Return "Hello"
Endproc
2)
На С++ делаешь библу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#import "vfp9r.dll" rename_namespace("VFPLib") 
  using namespace VFPLib;

extern const IID IID_Application ={0x002D2B12, 0xC1FA, 0x4193,  
  {0xB1, 0x34, 0xD8, 0x6E, 0xAE, 0xCC ,0x52, 0x50}};


  ApplicationPtr pVfp; 
IDispatch* _vfpapp = (IDispatch*)IDisp;
pVfp  =  _com_ptr_t<ApplicationPtr>(_vfpapp);

Теперь функцию пишешь:

 void RunVfpProc(ParamBlk FAR *parm)
{
// переаешь имя процедуры как строку
// потом
pVfp ->DoCmd(_bstr_t(<имя метода, полученного из ParamBlk>));  
}
Других вариантов нет. И уж точно нет возможности получить адрес процедуры наV FP из С++ и уж точно их фокса.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Передача функции как параметр...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]