Delphi/C++Builder で作成した、オートメーションサーバーのイベントが C# VB C++.net で発生しない

Delphi/C++Builder で作成した、オートメーションサーバーのイベントが C# VB C++.net で発生しない

イベントの引数に文字列(BSTR)を使用し、その中に空の文字列が含まれていると、.net側でイベントが発生しないもよう

原因は不明だが、Delphi側は WideStringが空の場合、#0へのポインタを返すとドキュメントに書いてあるため、そのポインタをオートメーションで受け渡す時に参照できないからかもしれない
文字列が空の場合、適当な文字を埋め込んで送るなどが必要

わざわざ VB6 を出してきて試したら、そっちではイベントが発生してました
サーバー側のソースがいじれない状態だと、厳しい事になります

コメント