귀하는 손님 이십니다
로그인
회원가입
  
  델마당 공식 은행계좌
  하나은행 227-910235-83607
  예금주 이상국(운영진)
프로젝트 게시판
투표게시판
델마당소개
기초부터 활용까지! 델파이 교육 - 데브기어
 광고문의 :
吏덈Ц怨 떟蹂 吏덈Ц怨 떟蹂 입니다.
글내용 - 吏덈Ц怨 떟蹂
 [吏덈Ц] C++ Dll 궗슜떆 Struct 씤옄媛 궗슜 愿젴빐꽌 吏덈Ц뱶由쎈땲떎.
留곴퀬移援
(넚蹂묎만)
2018-12-03 삤썑 2:21:31
128회 조회


등록된 파일이 없습니다.
1. 媛쒕컻/떎뻾 뵆옯뤌 
  (1) OS : Win7
  (2) 媛쒕컻댋 : Delphi XE2
  (3) 궗슜 Database : 

2. 媛쒕컻 以묒씤 봽濡쒓렇옩 : C++ DLL 궗슜븯뒗 봽濡쒓렇옩 留뚮뱾湲

3. 吏덈Ц 궡슜 

븞뀞븯꽭슂. 

紐뉖뀈쓣 뜽뙆씠瑜 궗슜쓣 븞븯떎蹂대땲 븘씠뵒留덉 源뚮㉨뼱꽌 깉濡 媛엯뻽꽕슂. 뀪뀪

떎由꾩씠 븘땲씪 C++濡 媛쒕컻맂 DLL쓣 궗슜븯뒗 봽濡쒓렇옩쓣 留뚮뱾젮怨 븯뒗뜲 媛쒕컻룄以 臾몄젣媛 깮寃쇰꽕슂.

C++ DLL뿉꽌 Struct瑜 寃곌낵媛믪쑝濡 뜽뙆씠濡 諛쏆븘빞 븯뒗뜲 씠寃 옒븞릺꽕슂.

1) C++ 뿤뜑 젙蹂

typedef struct tagRESULT_DETAIL
{
unsigned short NumResult;      
char OutString[3][256];      
short OutIndex [3][2];
int score[3]; 
...
} RESULT_DETAIL_t;

int _declspec (dllexport) get_result_from_wavfile (char *wavFileName, RESULT_DETAIL_t * pResult );


2) Delphi 옉뾽 궡슜

unit uniDLL;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

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

var
  Form1: TForm1;
implementation

type
//  PtagRESULT_DETAIL = ^tagRESULT_DETAIL;
  tagRESULT_DETAIL = packed Record
  NumResult : Word;
  OutString : array[1..3, 1..256] of AnsiChar;
  OutIndex : array[1..3, 1..2] of Smallint;
  score : array[1..3] of Integer;
  ...
end;

function get_result_from_wavfile(wavFileName: PAnsiChar; var pResult : tagRESULT_DETAIL) : Integer; stdcall;

procedure TForm1.Button1Click(Sender: TObject);
var
 tPath : PAnsiChar;
 tResult : tagRESULT_DETAIL;
begin
    tPath := PAnsiChar(AnsiString(ExtractFilePath(Application.ExeName)+ '[snd]5Sec.wav'));
    t_ResultInt := power_stt_eng_get_result_from_wavfile(tPath, tResult);
end;

씠젃寃 봽濡쒓렇옩쓣 뻽뒗뜲 踰꾪듉 겢由븯뿬 DLL 븿닔瑜 샇異쒗빐꽌 寃곌낵媛믪쓣 異쒕젰빐蹂대㈃ 

蹂닔쓽 媛믪쓽 닚꽌媛 諛젮꽌 굹삤嫄곕굹 Invalid floating point operation. 씪뒗 삤瑜섏갹씠 굹삤꽕슂.

씠 DLL쓣 씠슜빐꽌 쟾뿉 옒 궗슜뻽뿀뜕嫄곕씪 DLL 臾몄젣씪怨 蹂쇱닔룄 뾾뼱꽌 怨꾩냽 씤꽣꽬쑝濡 李얠븘蹂대㈃꽌 뀒뒪듃븯怨 엳뒗뜲 옒 븞由щ꽕슂.

硫곗튌吏 씠寃껊쭔 옟怨 엳뒗뜲 젙留 떟떟빀땲떎. 

옉 엺듃씪룄 二쇱떆硫 媛먯궗븯寃좎뒿땲떎.