VC++ 2005 BETA2

解決


DD.  2005-06-22 18:22:10  No: 58003

お世話になりますDD.です。

初歩的な質問になります。申し訳ございません。

タイトルの通りVC++2005 Express Edition Beta2 日本語版を
使用してみたいと思い、入れてみました。

以前BCC5.5.1及びVC++6を使ってコンパイルしていたソースを
VC++2005のほうで新しくプロジェクトを作成し、ソースをコンパイルしてみました。

当然一部コンパイルエラーとなり、ある程度の改変は行ったのですが、
下記エラーのみ改善の策が見つかりませんでした。

xxx.obj : error LNK2019: 未解決の外部シンボル _socket@12 が関数 "public: unsigned int __thiscall CSock::InitSock(void)" (?InitSock@CSock@@QAEIXZ) で参照されました。

その他、socket関数以外にWSAStartup・gethostname・gethostbyaddr・
inet_addr等にも同じエラーがでてしまいます。

Platform SDKも入れており、Includeフォルダ内のWinSock.h内に
↑の関数が定義されていることも確認したのですが...

言語仕様の改変によるコードの修正や異なるコンパイラ間の修正に
慣れておらず、行き届いていない部分があるかと思いますが、
よろしくお願い致します。


DD.  2005-06-22 18:32:43  No: 58004

質問内容が抜けていましたね^^;

上記コンパイルエラーを解決する方法はないでしょうか?

よろしくお願い致します。


とおり  2005-06-22 18:34:17  No: 58005

Ws2_32.libかな?
がリンクされていないのでは?


DD.  2005-06-22 18:48:31  No: 58006

とおりさんありがとうございます。

ws2_32.libをリンクして正常にコンパイルされました。

ライブラリのリンク不足だってのですね。
知識不足で申し訳ないです。


dairygoods  2005-06-22 19:04:02  No: 58007

Winsock.hに対してはwsock32.lib、Winsock2.hに対してはws2_32.libをリンクしたほうがよいですよ。

http://www.geekpage.jp/programming/winsock/tips-setsockopt.php


DD.  2005-06-22 19:44:03  No: 58008

dairygoodsさん適切な回答ありがとうございます。

リンク先HP参照させて頂きました。

インクルードするヘッダ内で明確な違いがきちんとあるのですね。
(そりゃありますが^^;)

以後気をつけて使用したいと思います。

勉強になりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加