본문 바로가기

쓰기

vb.net에서 MFC dll을 써서 이지트랜스로 번역해서 결과물을 가져오고 싶습니다.


그런데 아무리찾아봐도 방법을 모르겠습니다.


Imports System.Runtime.InteropServices


 Private Declare Fu*nction Translate Lib "ezTransXP.dll" (ByRef cszJapanese As String, ByVal szKorean As String, ByRef nBufSize As Int32) As Integer
 Private Declare Sub OnPluginInit Lib "ezTransXP.dll" (ByRef HWND As IntPtr, ByVal cszSettingStringBuffer As String)
 Private Declare Sub OnPluginClose Lib "ezTransXP.dll" ()


Dim szKorean As String = ""
Dim cszJapanese As String = "こんにちは"



이렇게하고 폼로딩에

OnPluginInit(Me.Handle, cszSettingStringBuffer)


Public Shared Fu*nction encode(ByVal str As String) As String

 Dim utf8Encoding As New System.Text.UTF8Encoding(True)
        Dim encodedString() As Byte
        encodedString = utf8Encoding.GetBytes(str)
        Return utf8Encoding.GetString(encodedString)
 End Fu*nction '유니코드 인코딩 펑션


버튼누르면 실행

Dim nbuff As IntPtr = 2048
Dim cc As Boolean = False
cc = Translate(cszJapanese, szKorean, nbuff)
RTBTText.Text = cc

RTB2Text.Text=szKorean


이렇게하면

텍스트박스에 True라고 뜹니다(에러없이 번역된 듯함)

그런데 2번째 텍스트박스에는 아무것도 안뜹니다.(szKorean string에 번역된게 들어오는 게 아니었나요?!)


어떻게해야 번역결과물을 가져올 수 있나요?


분류 :
Talk
조회 수 :
358
등록일 :
2016.06.14
02:21:37
엮인글 :
https://arallab.hided.net/2605099/2d9/trackback
게시글 주소 :
https://arallab.hided.net/board_devtalk/2605099

유피에르

2018.06.20
14:44:53

약간의 개조를 했습니다..

        OnPluginInit(Me.Handle, 0)

        Dim nbuff As IntPtr = 0

        Dim cszJapanese As Byte() = System.Text.Encoding.GetEncoding(932).GetBytes("こんにちは")

        Dim szKorean As Byte()

        Array.Resize(szKorean, cszJapanese.Length * 10) '크기가 작으면 제대로 출력이 안되서 크기를 좀 많이 늘립니다.


        Translate(cszJapanese, szKorean, nbuff)

        Dim t_1 As String = System.Text.Encoding.GetEncoding(51949).GetString(szKorean)


    이러면 t_1값에 한글값이 나옵니다.
List of Articles
공지 Talk [필독] 테스트필터 사용시 주의사항
라파에
155435   2008-08-03 2008-12-16 00:03