>>59
zlibで言うと、inflate()やdeflate()のような基本的なAPIは問題ないけど
gzdopen()はCRTのファイルディスクリプタを渡すので
DLLとexeが両方同じバージョンのCRTのDLLとリンクしていなければ正しく動作しない
(両方/MT、でもダメなので注意)

CRTオブジェクトをモジュール境界をまたいで渡したり
片方でmalloc()したものを片方でfree()する必要があったりするケースは
全て問題が起きる

たとえばmalloc()の例で言うと、DLL側でアロケートしたものをexe側に開放して
貰う必要がある場合は、free()用の関数をDLL側から提供するようにすれば
アロケータとデアロケータの不一致は避けられるので、
自分でDLL作るときは最初からそういう風に問題のないように設計したほうがいい