おっと、そう言えばここはBCBスレでした。>>393はDelphiのつもりで書いてしまった。失礼。

C++なら、全メソッドをvirtual xxx() = 0; にしたクラスを作り、ヘッダーファイルに書いて公開、
実装はそこから継承したクラスで行い、new/deleteのラッパー関数をDLLからエクスポート、でいいでしょ。
基底をIUnknownにすると、使う側がCOMと同じ調子で書けるのでなお親切。

AnsiStringとか、メモリを別途割り当てる型を使いたい場合は、VCLのShareMem使うとか、
exe側のメモリマネージャを渡してもらってDLL側はそれを使うとか、色々。