なになに、要約すると、WSAStartupの中で何かしらチェックが入るとな。
対策を見ると、WSAStartupをフックしてやって、WinsockAPIへのフックを一旦解除してからオーバーライド呼び出しが完了してから、再度フックしなおせば何とかなりそうとのこと。
マジすか。
えらい面倒だなぁ。
でも、Virtual PCではsocketもconnectもフックできたんだよなぁ。
どうしてだろう?
スタートアップコード内蔵しているのか?
それとも、WSAStartupの引数依存なのか?
何にせよ、道標は建ったので、漢ならやってやれだ。
せっかくなので、覚書きを1つ。
Winsock系APIはPascal呼び出しなので、関数ポインタ等を定義する際には、要注意。
間違ったキャストすると、例外吐いて落ちるし、デバッグも困難。
デバッグビルドならソース行くらいは出るので、該当する場合にまず疑うべきは宣言ミス。
コメントしちゃいなよ