Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: callback Добавлено: 07.06.04 15:40  

Автор вопроса:  Anjey

Проблема вот в чем…

Есть dll на VC++ :

typedef int (*ImportFunction)( int k);

 

extern "C" __declspec (dllexport) int  __stdcall Start(ImportFunction x)

{

int k=1;

int i=x(k);

return 1;

};

и есть вызов ее из VB:

1)Declare Function Start Lib "CallBackTMP.dll" Alias "_Start@4" (ByVal xCallbacF As Long) As Integer

2) Public Function xCallbackF(x As Integer) As Integer

MsgBox ("Work…")

End Function

3) Private Sub Command1_Click()

Call Start(AddressOf xCallbackF)

End Sub

 

Все отрабатывает, MsgBox выкидывается, и как только, так и сразу … вылетает ошибка

Как я понял о проблемах с декларацией callback функций. Что тут не так? Ведь тот же системный таймер (у него такой же принцип) работает???

(Вопрос модератору: В пятницу я оставил этот же вопрос и он Кудато делся ... спрашивается За Что???)

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #1
Добавлено: 08.06.04 12:59
п.с: оффтоп конечно но прсото чтоб были нормальные названия функций надо при экспорте в С++ делать через *.def файл
Ты кстати помнишь какой тип передачи аргументов у ВБ функций? и какой тип очистки стека после вызова? просто по умолчанию если функция в С++ то компилятор чистит стек... от параметров add esp, <сумма байт агрументов>
А если сделать что нибудь типа....
nак

typedef int __stdcall (*ImportFunction)(int k);

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам