私たちは、プラグイン「アーキテクチャ」を備えたアプリケーションを開発しています。独自の独自のアルゴリズムを提供します。クロスプラットフォームのインプロセスダイナミックライブラリバインディング(軽量で高性能なCOMまたはCORBA)のC++ラッパーの推奨事項
ドメインスペースには非常に高いパフォーマンスが要求されるため、アウトプロセスバインディングは機能しません。私たちは残しておきます。 CORBAやCOMだけのようなヘビー級のもの。基本的に私たちは周りのシンプルなクロスプラットフォームのラッパーを探している
:
- ロードライブラリを相対パス
- からは、いくつかの設定/名前 に/ .soは、特定のDLLのマッピングを提供します
- ライブラリを初期化してクエリを実行し、必要な機能を提供するようにします。
これは実際にはloadlibrary()とメソッド呼び出し輸出された。私たちはこれを自分で書くことができますが、私たちは十分に既存のコードを使用しています。
再び、スループットとパフォーマンスは非常に重要です。プロセスのうち、当社のニーズの必要はほとんどない「軽量化」ではない - この1つは近いですが、私たちはインプロセスでのみたい -
Cross-platform alternative to COM:
同様の質問があります。
C++ Cross Platform Dynamic Libraries; Linux and Windows
これは、アンマネージC++のためである - 私たちは
見つけたものを私たちは、Pocoは、私たちのニーズに素晴らしい作品ことがわかった - 私たちは、.NET
EDITを使用することはできません。ボーナスとしてThis pageは、C++開発の状況と言語の方向性について高く評価されています。
ポコが提供する必要があったシンプルなクロスプラットフォームラッピングでした。実際にはそれほど多くはありませんが、私たちは時間とテストを節約します。実行時に追加のオーバーヘッドはありません。
、私は誰もがインプロセスのために明示的にこれを行うには気にしているとは思いません。 XPCOMは最高のものです。 –
pocoがトリックをしているようです – Tim
@Tim:私のコメントは、アプリの消費者が独自のアルゴリズムを提供できるように、_aプラグインの "architecture"というアイデアに関連しています._私のプロジェクトは同じ機能を目指していますが、ユーザコードが無限ループを通過すると、使用されたコードが実行されるスレッドがCPUの1つのコアをロックしてパフォーマンスを低下させる重大な問題があります。どのようにこのスレッドを停止する必要があります。あなたは同じ問題を抱えていますか?はいの場合、あなたの解決策は何ですか? –