Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.06.2008, 22:20
cavalera cavalera вне форума
Прохожий
 
Регистрация: 16.06.2008
Сообщения: 3
Репутация: 10
По умолчанию Как использовать функцию написанную в C++ Builder в Delphi.

Такая ситуация: пишу программу на Дельфи. Для этой проги мне понадобились алгоритмы обработки изображений, для этого я нашёл OpenCV для C++ Builder. Я написал нужный код на C++ Builder, думая что можно будет потом загрузить эту функцию из dll, но почему-то она не загружается оттуда, выдаёт ошибку, что точка входа в процедуру не найдена (код dll и использования в Delphi приведены ниже). Можете посоветовать как решить эту проблему.

Код длл
PHP код:
//--------------------------------------------------------------------------- 

#include <vcl.h> 
#include <windows.h> 
#include <vcl.h> 
#include <cv.h> 
#include <highgui.h> 
#include <IplConverter.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); 
} 

Программа использования функции
PHP код:
unit Main; 

interface 

uses 
  Windows
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  
Dialogs, StdCtrls, ExtCtrls; 

type 
  TForm1 
= class(TForm) 
    
Button1: TButton; 
    
Image1: TImage; 
    
procedure Button1Click(Sender: TObject); 
  private 
    { Private 
declarations } 
  public 
    { Public 
declarations } 
  
end; 

var 
  
Form1: TForm1; 

implementation 

procedure FindContours
(bmp, outputBmp : TBitmap; t1, t2 : integer); stdcall; external 'OCVLib.dll' 

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  FindContours
(Image1.Picture.Bitmap, Image1.Picture.Bitmap, 200, 50); 
end; 

end. 
Ответить с цитированием
  #2  
Старый 18.06.2008, 10:09
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

А код процедуры DLLMain присутствует?
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #3  
Старый 18.06.2008, 21:48
cavalera cavalera вне форума
Прохожий
 
Регистрация: 16.06.2008
Сообщения: 3
Репутация: 10
По умолчанию

А где он должен быть и что это?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:44.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2026