>>29
起こってしまいます。

>>30
DLL とのインターフェースではバイナリ互換性が要求される。
規格にバイナリ互換性についての規定は無い。

class string { size_t n; char* p; ... };
class string { char* p; size_t n; ... };
↑の2つの string はどちらも規格に適合した実装となり得るが、
一方の実装が使われた DLL での string を、他方の実装が使われた
プロセスで正しく操作することはできない。