お世話になります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内に
↑の関数が定義されていることも確認したのですが...
言語仕様の改変によるコードの修正や異なるコンパイラ間の修正に
慣れておらず、行き届いていない部分があるかと思いますが、
よろしくお願い致します。
質問内容が抜けていましたね^^;
上記コンパイルエラーを解決する方法はないでしょうか?
よろしくお願い致します。
Ws2_32.libかな?
がリンクされていないのでは?
とおりさんありがとうございます。
ws2_32.libをリンクして正常にコンパイルされました。
ライブラリのリンク不足だってのですね。
知識不足で申し訳ないです。
Winsock.hに対してはwsock32.lib、Winsock2.hに対してはws2_32.libをリンクしたほうがよいですよ。
http://www.geekpage.jp/programming/winsock/tips-setsockopt.php
dairygoodsさん適切な回答ありがとうございます。
リンク先HP参照させて頂きました。
インクルードするヘッダ内で明確な違いがきちんとあるのですね。
(そりゃありますが^^;)
以後気をつけて使用したいと思います。
勉強になりました。
ツイート | ![]() |