質問: vc60とvc70の違いは? コンパイル環境のvc60とvc70の具体的な違いってありますでしょうか? 今までvc++6.0を使っており、最近.netに環境を変えたのですが、6.0で動いてたものが.netでは動きません。 具体的に言うと、soapでwsdl指定のサーバーとの通信を行うのですが、.netでは通信を行わず、unknown errorと返ってきます。 soap通信の方法ですが、soapclient生成から、invokeメソッドで通信を行っています。 6.0と.netでの違いはコンパイラの違いと思っているのですが。。どなたかご存知の方、ご教授お願いできないでしょうか?
回答: vc60と70は大きく変わっています。1番分かりやすいのはmfcのバージョンがあがってclassが増えたり改変されている点でしょうか。 vc6でビルド実行が正常なのにvc7ではビルドができなかったり、できても実行時にエラーになる、ということはよくあります。逆にvc7で作ったものはvc60では動かないこともあります。 もちろん場合によってはvc6で動いていたものがvc70でも正常に動くこともありますし、その逆がうまくいくこともあります。 わたしもどうしても.netに移行できなかったソースががあります(ビルドはできるのに誤動作する)。特に.netに移行しなければいけないという必要性や要望もないので必要なときはvc6を使うようにしています。 soapが失敗した理由をこれだけの質問文で特定することは難しいと思います。まずはincludeファイルやlibファイルの読み込みディレクトリの優先順序をチェックしてみてはどうでしょうか?vc6では最新のplatformsdkが使われていたのにvc70では使われていなかったから、みたいなこともあります。