PDA

نسخه کامل مشاهده نسخه کامل : Winsock.h



sara_she
09-07-2007, 09:35
می خواستم در ویژوال سی سوکت کار کنم که در صفحه زیر:

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

به این مطلب برخوردم :

The Winsock2.h header file internally includes core elements from the Windows.h header file, so there is not usually an #include line for the Windows.h header file in Winsock applications. If an #include line is needed for the Windows.h header file, this should be preceded with the #define WIN32_LEAN_AND_MEAN macro. For historical reasons, the Windows.h header defaults to including the Winsock.h header file for Windows Sockets 1.1. The declarations in the Winsock.h header file will conflict with the declarations in the Winsock2.h header file required by Windows Sockets 2.0. The WIN32_LEAN_AND_MEAN macro prevents the Winsock.h from being included by the Windows.h header. An example illustrating this is shown below.


مي شه يكي بگه اين مطلب به چه معني است و آيا بحث تداخل هدر ها مطرح است؟ فكر مي كنم در هيچ زباني به جز ويژوال سي ++ اين مورد وجود نداره.

someone
10-07-2007, 02:28
سلام.
بذارین یه طور دیگه قضیه رو بررسی کنیم.
کد زیر زیر بدون هیچ مشکلی اجرا میشه :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما فرض کنیم شما میخواین از هم Windows.h استفاده کنین :
با اینکه لازم نیست دیگه WinSock2.h رو به برنامه اضافه کنین ، فرض میکنیم این کار رو انجام دادین :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اگه کد بالا رو اجرا کنین نزدیک به 60 تا error ایجاد میشه مبنی بر اینکه یک سری
از توابع و ثابت ها دوباره تعریف شدن.
اگه شما در برنامتون هم از Windows.h استفاده کردین و هم از WinSock2.h کافیه ماکروهای زیر رو
به اول برنامه اضافه کنین :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در این صورت برنامه بدون خطا اجرا میشه. بازم تاکید میکنم در صورت استفاده از Windows.h
لازم نیست WinSock2.h رو به برنامه اضافه کنین. دلیلش هم در تعریف زیر که در Windows.h شده
هست :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sara_she
10-07-2007, 11:49
very very tanks
كم كم دارم فكر ميكنم چه سوالي مي تونم بپرسم كه شما نتونيد جواب بدين . واقعا برام خيلي جالب و قابل تأمله كه شما تو هر زمينه دستي داريد

خيلي از آشنايي با شما و عضويت در اين وبلاگ خوشحالم
اميدوارم هميشه موفق و كامياب باشيد