0

Visual Studio 2008 で C++ を使用しています。

アプリケーションでサードパーティ ライブラリ (BCG) を使用しています。BCG クラスのメンバー変数のアクセス指定子を (protected から public に) 変更する必要があります。問題は、dll ファイルを再生成せずに、アプリケーションに含まれるヘッダー ファイルのみでアクセス指定子を変更しても安全かということです。それは可能であり、表面上はうまく機能しているように見えます。ただし、安全かどうかはわかりません。

そのサードパーティのライブラリで使用されているクラスから派生させようとしていますが、目的を達成するために、別のクラスから保護された変数にアクセスする必要があります。(将来の統合のために)変更を最小限に抑えたいので、dllファイルの変更を避けたいです。

4

1 に答える 1

1

インスタンスメンバーへのアクセスには、リンカ内のシンボルの修正は含まれません。代わりに、メンバーのIDは、オブジェクトポインターに対するオフセットにコンパイルされるため、名前マングリングやその他のリンクに関する質問は含まれません。これがあなたのために働いているように見える理由です。

再構築できないDLLによって公開されているクラスを説明するヘッダーを変更することは、一般に明らかに危険な動作であるため、注意して続行してください。

于 2013-03-14T20:51:22.053 に答える