1

私は現在、WinCE が Amazon Relational Database Service と連携するための C 言語のライブラリを開発しています。これらの API は、データベース インスタンスのサイズのスケールアップなどの機能を提供する Amazon データベース インスタンスの管理に役立ちます。

データベースを使用するための API と機能も提供する必要があります。基本的に、データベース インスタンスに接続し、INSERT、DELETE、UPDATE などのクエリを実行できます。

C# で開発を行う場合、MySQL コネクタを提供する .NET Compact Framework の dll を使用できるため、これは簡単になります。これで、Amazon RDS MySQL インスタンスに接続して、さまざまなクエリを実行できます。この機能は、WinCE 用に C で提供する必要があります。

私が試した方法は次のとおりです。

  1. LoadLibrary と GetProcAddress を使用しようとしました。.NET CF dll をロードできますが、GetProcAddress が失敗します。MySqlConnection のアドレスを取得するために、さまざまな文字列の組み合わせを試しました。これが機能したとしても (現在何か間違ったことをしていると仮定して)、MySqlConnection またはその他のオブジェクトとメソッドの使用方法がわかりません。

  2. CLRのホスティングについて知りました。mscoree.dll、mscoree.h、またはライブラリを取得できないため、これは機能していないようです。ある MSDN の記事では、.NET CF はこれをサポートしていないと述べています。

  3. もう 1 つの方法は、COM Interop の使用です。私は .NET CF dll しか持っておらず、C# ソースを持っていないので、これでうまくいくかどうかわかりません。私が理解していることから、ソースを入手して、http://msdn.microsoft.com/en-us/library/aa645738(v=vs.71).aspxここに示すようなことをする必要があります。

  4. CMake 2.8.11-rc4 を使用して完全な MySQL コネクタ ソース (Windows プラットフォームで利用可能なもの) をクロス コンパイルしようとしました。これは、VS2008 と共に WinCE6 SDK を検出するためです。構成自体が失敗します。

私がやりたいことを達成するための可能な方法を誰かが提案できますか? 私は間違った方向を見ているのかもしれません。

4

2 に答える 2

1

できません。必要になるのは EE ホスティングと呼ばれるもので、ネイティブ コードが実行エンジンをロードしてホストする必要があることを意味します。Compact Framework には、これを行うためのサポートや機能がありません。

同じ理由で、Compact Framework で COM コンポーネントを作成することもできません。COM インフラストラクチャは、EE をホストできないため、マネージ クラスをロードする方法がありません。

マネージド プロセスでマネージド コードを最初に実行しない限り、ネイティブ コードからマネージド コードを呼び出す方法はまったくありません。基本的に、実行する必要がある何らかのプロキシ実行可能ファイルを作成する必要があり、ネイティブ コードは IPC を介してそれを呼び出します。

于 2013-05-20T14:24:08.460 に答える
0

http://dev.mysql.com/doc/internals/en/client-server-protocol.html

誰かが私にこれについて教えてくれたらよかったのに。上記の作業を実装して実行するのがはるかに簡単です。

于 2013-08-29T12:58:37.303 に答える