نمایش نتایج 1 تا 10 از 10

نام تاپیک: توابع Wininet

  1. #1
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393

    Question توابع Wininet

    سلام خدمت دوستان گرامی
    من می خوام یه برنامه بنویسم که روی یه FTP مثلا FTP توی IIS ویندوز کار می کنه. برای همین از توابع Wininet.dll استفاده می کنم. ولی وقتی این کارو می کنم ( یعنی از این توابع استفاده می کنم.) ارور می ده که این توابع باید extern (External) باشند.
    لطفا هر کسی که راجع به استفاده از توابع Wininet و توابع extern چیزی می دونه یه کمکی به من بکنه.
    با تشکر

  2. #2
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393
    چرا کسی جواب منو نمیده.
    یعنی کسی تا حالا با این توابع کار نکرده.

  3. #3
    برای دریافت پاسخ باید کمی صبور باشید .
    احتمالا شما Wininet.lib را به پروژه خود لینک نکرده اید ، این پیام در این چنین مواقعی داده می شود.

  4. #4
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393
    سلام
    اگه ممکنه یه توضیحی راجع به نحوه لینک کردن Wininet.lib به پروژه بدهید.

    ممنون

  5. #5
    در بالای فایل بنویسید:

    #pragma comment(lib, "Wininet.lib")

    یا به جای کد فوق از منوی project گزینه option را انتخاب کنید و در بخش linker -> linking -> additional این کتابخانه را وارد کنید.

  6. #6
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393
    دوست عزیز از شما ممنونم.
    اینکارو کردم و دستورات زیر رو نوشتم :



    HIO=InternetOpen("Wininet Test",INTERNET_OPEN_TYPE_PROXY,TEXT("proxy"),TEXT( "<local>"),0);

    HIC=InternetConnect(HIO,TEXT("fttp://127.0.0.1"),INTERNET_DEFAULT_FTP_PORT,NULL,NULL,IN TERNET_SERVICE_FTP,INTERNET_FLAG_TRANSFER_ASCII,0) ;

    FtpPutFile(HIC,TEXT("C:\\Test.cab"),TEXT("Test2.ca b"),INTERNET_TRANSFER_TYPE_ASCII,0);


    دو دستور اول رو درست انجام می ده و دستور آخر رو نمی تونه انجام بده و ارور می ده.
    اروری که می ده می گه:
    ERROR_HANDLE_INVALID
    The handle is invalid.

    این ارور هرکاری کردم نتونستم رفعش کنم.
    اگه ممکنه یه توضیحی هم برای رفع این مشکل بفرمایید.

    ممنون

  7. #7
    از طریق debug کامپایلر خط به خط این دستورات را اجرا کنید و مشاهده کنید که آیا مقادیر HIO و HIC برگشتی از توابع NULL هستند یا خیر. اگر NULL بود نشاندهنده این است که خطایی در آن مرحله رخ داده است.

    در صورتی که می خواهید دقیقا بدانید که چه خطایی رخ می دهد از فراخوانی GetLastError بعد از هر تابع استفاده کنید تا به شما نوع خطا را دقیق تر اعلام کند ،
    ضمنا از InternetGetLastResponseInfo هم در برخی موارد برای خطاهای سرور و اینترنت در این چنین موارد می توانید استفاده کنید.

  8. #8
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393
    ممنون
    دو دستور اول HIO و HIC رو NULL بر نمی گردونه و InternetOpen و InternetConnect به درستی انجام می شود ولی دستور آخر باتوجه به تابع GetLastError دارای ارور شماره 6 است که این ارور همین ERROR_HANDLE_INVALID می باشد.
    این ارور رو نمی دونم باید چکارش کنم.

  9. #9
    فکر می کنم اشتباه شما در FtpPutFile برای فلگ پارامتر چهارم هست ، که باید FTP_TRANSFER_TYPE_ASCII باشد ، احتمالا اشتباها مورد دیگری به کار بردید.

  10. #10
    کاربر دائمی آواتار Yasersadegh
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    اروميه
    پست
    393
    ممنون از اینکه منو تحمل کردید و به سوالاتم پاسخ دادید.
    ولی فلگ پارامتر چهارم رو هم درست کردم ولی بازهم همون ارور رو میده . با توجه با این که ارور ERROR_HANDLE_INVALID رو میده من فکر می کنم که مشکل از نحوه Connect باشه ولی نمی دونم چه مشکلی!؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •