0

Visual Studio 2012 を使用して (他の機能の中でも) Bluetooth の状態を監視するための Win8 デスクトップ アプリを作成しています。プロジェクトのプロパティで Bthprops.lib を指定しました。Bluetooth コードを使用して DLL を作成し、C# プロジェクトから呼び出します。

すべてがWin8でうまく機能します。ただし、アプリを Windows Server 2012 で実行すると、起動時に DLL を読み込めません。これは、win server 2012 が Bluetooth をサポートしておらず、依存する bthprops.cpl がないためです。

アプリを複数のプラットフォームで動作させたい (そしてユーザーに追加のコンポーネントをインストールさせたくない) ため、必要な依存ファイルがプラットフォームにない状況では、アプリを起動できるようにして、 bluetooth コードを作成し、残りの機能を実行します。

これは可能ですか?どうすればこれを達成できますか?

ありがとうございました

4

1 に答える 1

2

LoadLibrary()を使用して dll を動的にロードする必要があるのではないかと心配しています。これにより、起動に依存しなくなります。さらに、ロードが成功したかどうかを確認できます。そうでない場合、コンポーネントはインストールされていません。これにより、遅延読み込みメカニズムを誤用することが推奨されます。

その場合、ライブラリ ファイルは使用しません。代わりに、単純にヘッダー ファイルを使用するか、GetProcAddress()を使用して適切な dll 関数を見つけます。

于 2013-04-03T13:47:12.427 に答える