ソリューション内の別のプロジェクトからwin32dllを参照するストアドプロシージャで構成されるC#プロジェクトがあります。現在、dllimportは絶対パスを使用して参照しています。代わりに相対パスを使用する場合、clrストアドプロシージャアセンブリがSQLサーバーにロードされた後の相対パスはどこにありますか?
1073 次
1 に答える
0
DLLは物理的に利用できないため、良い質問です。私の推測では、ホストが存在する場所(SQLサーバーのバイナリなど)が表示されます。しかし、テストインスタンスを備えたマシンでProcessMonitorなどを使用して調べてみます。SQLサーバーはファイルを見つけようとしますが、これはプロセスモニターログに表示されます。
ただし、システムのLoadLibrary呼び出しとGetProcAddress呼び出しを使用し、必要に応じてMarshalクラスを使用して取得したアドレスにデリゲートをバインドすることもできます。これにより、計算されたDLLパスへの適切な遅延バインディングを実行できます。
于 2009-11-24T17:18:09.113 に答える