
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.12.2006, 22:18
|
|||
|---|---|---|---|
Параметр у вункции указатель... |
|||
|
#18+
Доброго времени суток!!! Ситуация следующая: в DLL-ке есть функция: double fun (double x, double y, double (*func)(double),int t) Эта функция вызывается из моего проекта: double a=fun(1,2,cos,3); а нужно сделать так, что бы вместо "cos" автоматически вставлялась бы функция из ComboBox-a, т.е. типа того: double a=fun(1,2,ComboBox1->Text,3); Но это естественно не работает. Я надеюсь я более менее чётко выразил свой мысли или хотя бы на интуитивном уровне стало бы ясно, что я хочу узнать. Всем заранее спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.12.2006, 22:51
|
|||
|---|---|---|---|
Параметр у вункции указатель... |
|||
|
#18+
Прошу прощенье за "вункции" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.12.2006, 03:28
|
|||
|---|---|---|---|
Параметр у вункции указатель... |
|||
|
#18+
ну если речь идет именно о комбобоксе, то делать как бы и нечего... все счлишком просто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2006, 04:00
|
|||
|---|---|---|---|
Параметр у вункции указатель... |
|||
|
#18+
XEDну если речь идет именно о комбобоксе, то делать как бы и нечего... все счлишком просто: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. case 2: a=fun(1,2,MyFunc,3) работать не будет,т.к. все функции типа MyFunc находятся, в отдельном модуле, который может и обнавляться, и изменяться полностью и поэтому распознание ни как не напишишь. В DLL-ке реализация функции double fun (double x, double y, double (*func)(double),int t) выглядит как-то так: func(x+x*x+15*x*x*x) в файле проекта вместо func, будет подставляться любая функция, скажем из math.h(соответственно и math.h должна быть подключена в DLL). Мне просто жуть как интерестно можно ли вместо cos в: a = fun(1,2,cos,3); подставить какой-нибудь хитро-сплетённый указатель или ссылку на функцию из ComboBox-a или из Edit-а, т.е. надо фактически как-то взять и конвертировать AnsiString в double(*)(double). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.12.2006, 09:44
|
|||
|---|---|---|---|
Параметр у вункции указатель... |
|||
|
#18+
Есть нечто на эту тему. Может поможет?.. //---------------------------------------------------- int IntDLCallChar(char *FunctionName, char *Param){ // вызов функции int (*f)(char *); по имени FunctionName // вызываемая ф-я должна иметь прототип // extern "C" int __export WINAPI <FunctionName>(char *Param); int k; HMODULE hm; FARPROC fp=NULL; int (*f)(char *); hm=GetModuleHandle(NULL); fp=GetProcAddress(hm,FunctionName); if(fp==0){ AnsiString s; s=AnsiString("IntDLCallChar():\nНе найдена ф-я ")+FunctionName; MessageBox(0,s.c_str(),"Ошибка",MB_OK); *Param='\0'; return 0; } f=(int(*)(char *))fp; k=(f)(Param); return k; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&mobile=1&tid=2029862]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 361ms |

| 0 / 0 |
