2017-04-10 24 views
0

したがって、ハッシュに署名するメソッドを持つWebサービスをc#で作成しました。このWebサービスはWCFサービスアプリケーションです。 次に、このWebサービスを使用するための関数を記述したC#Consoleアプリケーションを作成しました。Webサービスを呼び出す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; 

} 
} 

このWebサービスは正常に動作します:Webサービスを呼び出す関数の 宣言は、ということです。今、このWebサービスをアンマネージコードから呼び出すので、このC#メソッドでC++ラッパークラスを構築したいと思います。私はC++ラッパークラスを作成することをお勧めします。誰もこのラッパークラスの構造の一種で私を助けることができますか?私はC++とC#の間の変換を非常によく理解していません。私はこのC#メソッドを呼び出すためのC++メソッドを含むrefクラスを持つC++ CLRクラスライブラリを作成しましたが、この関数のパラメータの型にはまだいくつかの問題があります。

答えて

1

(C++/CLIを使用する代わりに)ネイティブ(アンマネージド)C++に固執したい場合は、C++から直接WCFサービスを呼び出すことができるように、WWSAPIが最適です。それはCベースのAPIなので、C++から使用するのは面倒です。

それ以外の場合は、C++/CLI hereに関する詳細なドキュメントがあります。特にmarshalingである。

+0

ありがとうございます。私はWindowsのWebサービスで作業したくなかったし、C++/CLIで作業していました。 – Paul

関連する問題