delphi function 의 return형을 PChar 선언 후 C#에서 받을 떄 MarshalAs(UnmanagedType.LPWStr) 와 같이 받습니다.
도움이 되기를...
첫눈 님이 쓰신 글 :
: DelphiXE2 와 Visual Studio 2013을 사용합니다.
:
: 하다 하다 안되니 이젠 별 짓을 다 해봅니다.
:
: 델파이로 DLL을 만들어 VB에서 가져다 사용할까 하고 테스트삼아 하나 만들어 봤습니다.
:
:
:
:
:
: library MyDLL;
:
: uses
: VCL.Dialogs;
:
: Function Test(A: WideString; B: WideString) : WideString; stdcall;
: Var
: C : String;
: begin
: Result := A + B;
: ShowMessage('A : "' + A + '"' + #10#13 + 'B : "' + B + '"' + #10#13 + 'Result : "' + Result + '"');
: end;
:
: exports
: Test name 'Test';
:
: begin
: end.
:
:
:
:
:
:
: 위와 같이 DLL을 만들고 이것을 아래와 같이 VB에서 사용하는데요.
:
:
:
:
:
: Public Class Form1
:
: Public Declare Function Test Lib "MyDLL.dll" (ByVal A As String, ByVal B As String) As WideString
:
: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
: Dim a As String = "글자가" & vbCrLf
: Dim b As String = "잘보이나?" & vbCrLf
: Dim c As String = ""
:
: c = Test(a, b)
:
: TextBox1.Text = a
: TextBox2.Text = b
: End Sub
: End Class
:
:
:
:
:
: VB쪽에서는 이상이 없는데 문제는 델파이쪽입니다.
:
: ShowMessage('A : "' + A + '"' + #10#13 + 'B : "' + B + '"' + #10#13 + 'Result : "' + Result + '"');
:
: 이부분에서 한글이건 영문이건 관계없이 글자가 모두 깨져서 보이거든요.
:
: 이건 어떻게 해결해야 하나요?
|