2017-04-10 2 views
0

그래서 해시 서명을위한 메서드가있는 웹 서비스를 C#으로 작성했습니다. 이 웹 서비스는 WCF 서비스 응용 프로그램입니다. 그런 다음이 웹 서비스를 사용하는 함수를 작성한 C# 콘솔 응용 프로그램을 만들었습니다.웹 서비스를 호출하는 C# 클래스의 C++ 래퍼 클래스

class Program 
{ 
public byte[] callWS(string alias, byte[] myHash,string myPassword) 
{ 
    IhashSignSVCClient client = new IhashSignSVCClient(); 
     byte[] signedData= client.SignandReturn(alias, myhash, myPassword); 
     if (signedData != null) 
     { 
      Console.WriteLine(signedData); 
      return signedData; 
     } 
     return null; 

} 
} 

이 웹 서비스가 잘 작동 : 웹 서비스를 호출하는 기능의 선언은 있다는 것입니다. 이제이 C# 메서드를 통해 C++ 래퍼 클래스를 작성하려고합니다. 비 관리 코드에서이 웹 서비스를 호출하기 때문에 C++ 래퍼 클래스를 만드는 것이 좋습니다. 누구나이 래퍼 클래스의 구조와 같은 종류의 도움을받을 수 있습니까? C++과 C# 사이의 변환을 잘 이해하지 못했습니다. 이 C# 메서드를 호출하는 내 C++ 메서드를 포함하는 ref 클래스를 사용하여 C++ CLR 클래스 라이브러리를 만들었지 만이 함수의 매개 변수 유형에 여전히 문제가 있습니다.

답변

1

(관리되지 않는) C++ (C++/CLI를 사용하는 대신)를 사용하려면 최상의 옵션이 WWSAPI 일 수 있으므로 C++에서 직접 WCF 서비스를 호출 할 수 있습니다. 그것은 C 기반 API이기 때문에 C++에서 사용하는 것은 다소 귀찮은 문제입니다.

그렇지 않으면 C++/CLI here에 대한 광범위한 설명서가 있습니다. 특히 marshaling.

+0

감사합니다. 나는 윈도우 웹 서비스로 일하고 싶지 않았고 C++/CLI를 사용했다. – Paul

관련 문제