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

Ваш аккаунт

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

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

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

Как динамически вызвать функцию из dll написанной на С++ Builder

548
11 июня 2008 года
Maximillian_Cavalera
157 / / 16.08.2007
Вот приведён код библиотеки написанной на C++ Builder. Скажите как можно динамически вызвать метод FindContours из этой библитеоки
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <windows.h>
#include "IplConverter.h"
#include <cv.h>
#include <highgui.h>
#pragma hdrstop

extern "C" __declspec(dllexport) void FindContours(Graphics::TBitmap &bmp, Graphics::TBitmap &outputBmp, int threshould1, int threshould2);

#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
    return 1;
}
//---------------------------------------------------------------------------
void FindContours(Graphics::TBitmap &bmp, Graphics::TBitmap &outputBmp, int threshould1, int threshould2)
{
    IplImage *image = TBitmapToIplImage(&bmp);
    IplImage *convertedImage = cvCreateImage( cvSize(image->width, image->height), image->depth, 1 );
    cvSetImageCOI( image, 2 );
    cvCopy( image, convertedImage, 0 );
    cvCanny(convertedImage, convertedImage, threshould1, threshould2, 3 );
    IplImageToTBitmap(convertedImage, &outputBmp);
}
261
11 июня 2008 года
ahilles
1.5K / / 03.11.2005
LoadLibrary, GetProcAddress

пример
Код:
type
  Tcalc_double = function ( r: real ): real;stdcall;

procedure TForm1.Button1Click(Sender: TObject);
var
  hndDLLHandle: THandle;
  calc_double: Tcalc_double;
begin
   hndDLLHandle := loadLibrary ( 'ExDouble.dll' );
   if hndDLLHandle = 0 then exit;
   @calc_double := getProcAddress ( hndDLLHandle, 'calc_double' );
   calc_double ( 10.5 ) ; //вызываем искомую функцию
end;

главное чтобы форматы вызова совпадали! не забудь его указать в тексте DLL! если в Delphi stdcall, то в BCB __stdcall
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог