解説
ふつうのCの関数はcdeclだけど、APIはstdcallです。
WINAPIはstdcallになってます。

cdecl は、引数渡しに使ったスタックを呼び出した側がクリア。
stdcall は、引数渡しに使ったスタックは呼び出された側がクリア。

dd_recv = (PP_RECV)GetProcAddress( h_original, "recv" );
で(PP_RECV)はずすとコンパイルエラーださない?