2011-04-12 2 views
0
StringBuilder codeline = new StringBuilder(100); 


    protected virtual int OnCodeLine(int code, int docId, ref StringBuilder codeline) 
      { 
//// 
} 

이 내가 함께 무엇을 얻을 * 심판의 StringBuilder *C# DLL을 호출 문자열 인코딩 문제

ĞĞÑĞÒĞÓĞÔĞÕĞÖĞ ĞØĞÙĞÚĞÛĞÜĞİĞŞĞßĞàĞáĞâĞãĞäĞåĞæĞçĞèĞéĞêĞëĞìĞíĞîĞïĞğĞñĞòĞóĞôĞõĞöĞ ÷ × ĞøĞùĞúĞûĞüĞıĞşĞÿĞÑÑÑÑÑÑÑ Ñ NNN

,

ÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑÑ

만의 StringBuilder와 난 단지이 그 가정하자 방식 이것을 MICR 코드에 의해

(300) 078 9059431

를 반환하는 것입니다 3

수 수표에서

[DllImport("mflib.dll")] 
    public static extern int mfScanFeeder(int mode, int font, int timeout); 

[UnmanagedFunctionPointer(CallingConvention.StdCall)] 
public delegate int MFS100_CodeLineDelegate(int code, int docId, ref StringBuilder codeline); 
public event MFS100_CodeLineDelegate MFS100_CodeLine; 
private static MFS100_CodeLineDelegate cache_CodeLine; 

업데이트 : 여기에 내가 내가 32361 길이 문자열을 얻을 심판에 모두 StringBuilder를 사용하는 경우 VB6

Public Function MFS100_OnCodeline(ByVal code As Long, ByVal docId As Long, ByVal codeline As String) As Long 
    Dim i As Integer 

    WriteEvent "OnCodeline:" 
    WriteEvent " code = " & code 
    WriteEvent " docId = " & docId 
    WriteEvent " codeline = " & codeline 

    MFS100_OnCodeline = -1  ' -1 means: sorting will be done by mfSort() 

    g_codeline = codeline 

    CScannerForm.TmrSort.enabled = True 
End Function 

업데이트 2

mfSetEvent((int)EventEnum.E_EVENT_CODELINE, cache_CodeLine); 



[DllImport("mflib.dll")] 
     private static extern int mfSetEvent(int eventID, Delegate callsback); 

에서 작동 원본 코드입니다. ref가 없으면 문자열의 첫 번째 값만 가져옵니다.

OnCodeLine은 스캐너 장치에서 콜백을위한 것입니다. 문제가 무엇인가요?

+1

어쩌면 당신은 당신이 관리 서명뿐만 아니라 호출하고자하는 함수의 관리되지 않는 헤더를 보여줄 수는 호출하고있는 방법의 관리되지 않는 서명은 무엇 –

+1

는 P 무엇입니까.?/Invoke signature? –

+0

@Darin 저는 DLL과 서명 만 있습니다. –

답변