2011-05-12 1 views
1

프로그래밍 방식으로 다른 번호로 전화를 거는 응용 프로그램이 있습니다. 응용 프로그램은 C# (관리 됨)로 작성되었으며 pInvoke는 C++ TAPI 함수에 사용됩니다. 전화 번호를 전화 가능한 형식으로 변환해야한다는 사실을 제외하고는 모두 잘 작동합니다.lineTranslateAddress C++을 관리되는 C#

이 변환을 수행하려면 C# 함수 lineTranslateAddress을 사용해야하지만 C#을 사용해야합니다. 누구든지 관리 코드에서이 함수를 사용하고 나에게 몇 가지 샘플이나 최소한의 설명을 제공 할 수 있습니까?

어쩌면 약간의 표시 방법을 마샬 /로는 마지막 필드

LPLINETRANSLATEOUTPUT에게 nmarshall lpTranslateOutput 나는 또한 응용 프로그램이 스마트 장치에 대한 것을 언급해야한다

.

감사합니다,

답변

2

(만 TAPI 2에 의해 지원되는 기능의 일부를 호출 제공) tapi3.dll의 기능을 사용할 수 있습니다, 작동합니다

[DllImport("coredll", SetLastError = true)] 
extern public static int lineTranslateAddress(
    IntPtr hLineApp, 
    int dwDeviceID, 
    int dwAPIVersion, 
    string lpszAddressIn, 
    int dwCard, 
    int dwTranslateOptions, 
    byte[] lpTranslateOutput 
    ); 
0

내가 여러 번 C#에서 TAPI와 함께 일했습니다, 나는 강하게 런타임 호출 가능 래퍼 (RCW) 대신 플랫폼 호출을 사용하여 사용하는 것이 좋습니다 것입니다. C:\windows\system32\tapi3.dll을 프로젝트 참조로 추가 할 수 있으며 VS는 클래스 및 함수로 작업 할 수있는 interop 어셈블리를 자동으로 생성합니다.

이렇게하면 lineTranslateAddress 함수를 쉽게 호출 할 수 있습니다. ITAddressTranslation 인터페이스를 통해

참고 : TSP는 TAPI 2.x를 준수하더라도, 당신은 아직도 내가이 코드 예제를 사용

+0

스마트 장치에도이 기능이 작동합니까? 아마 내가 DLL 경로에서 볼 수있는 것처럼. (원래 게시물에서 언급하는 것을 잊었습니다.) –

+0

형식 라이브러리는 스마트 장치와 함께 사용할 수 없습니다. –

+0

어쨌든 도움과 관심에 감사드립니다. –