ايران ويج

نسخه‌ی کامل: نوشتن و استفاده از DLL
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
سلام

اول اینکه جناب yeketaz این DLL که گفتی ، همونطور که hoax3r گفت ، تو ثبت کردنش ERROR میده ؛ من یه مشکل دیگه با اون DEF داشتم که هنگام کامپایل ERROR میداد ،و مجبور شدم چند خط ازشو حذف کنم تا درست شه ! ولی چون ثبت نشد تو ویندوز دیگه ندیدم که کار میکنه یا نه

2-در مورد DLL : میخواستم DLLای بنویسم و مثلا بدم بیرون ، اشخاص دیگه ازش استفاده کنن ، حتی با ندونستن توابع داخل DLL ؛ ممنون اگه اینم راهنمایی کنین.

3-جناب lord_viper منبی ندارید که توش توضیح داده باشه که برای کدوم توایه API باید چه هدری رو include کنیم ؟؟ (مثلا createfile اگه اشتباه نکنم تو user32 هستش و ....)

دوستان از همه ممنون که جواب میدین.
بله الان که با regsvr تست کردم اررور داد

برای راه های دیگه به پست قبلی منو ببینید

==========================

شما اگه از ++VC استفاده کنید نیاز به درگیری با هدرها نداره فقط با :: می شه به کامپایلر فهموند که این تابع API ه

مثلا :

FindWindow::
سلام

یعنی فقط با :: مشکل حله ؟؟ حالا هر تابع API ای بود ؟؟
شما توی محیط کدنویسی ++VC کلید Ctrl رو همزمان با Space بزن تا منوش بازشه

بعد توش معلومه که توابع API هست ولی اگه همینطوری استفاده کنی خطا می ده چون خوده ++VC هم توابعی شکل API ها داره

در نتیجه باید معلوم کنی کدوم تابع رو می خوای. اگه خالی به کار ببری که تابع خوده ++C ه ولی اگه :: گذاشتی اولش بهش گفتی

که منظورم توابع API ه

تقریبا تمام API ها رو پوشش می ده
سلام

آقا شرمنده ! نشد ، برای مثال تابع PathIsexist ( اگه اینجا درست نوشته باشم ) تو لیستش هست ، وقتی اولش :: میزارم ، هنگام کامپایل میگه باید تعریفش کنی !! باید چی کار کنم ؟؟

ممنون و ببخشید
با 6 ++Visual C دارید کار می کنید دیگه؟

برای من که همچین چیزی نداره و اگه نداشته باشه می گه باید تعریفش کنید

فقط یه PathFileExists هست که مشکلی نداره و اصلا به :: هم نیاز نداره
سلام
این جور توابع که میگه نیست یعنی اینکه فایل lib اون api رو تعریف نکردی
برای هر API که استفاده میکنید باید ببیند که چه کتابخانه و چه هدر فایلی رو به کدتون باید اضافه کنید
اینا تو MSDN هست برای تابع PathIsExe باید کتابخانه ی shell32.lib و هدر shlobj.h تعریف بشن
برای تعریف کتابخانه یا باید داخل تنظیمات کامپایلرت بری و واردش کنی یا با دستور pragma تعریفش کنی
که حالت دوم به این صورت میشه

کد:
#include <windows.h>
#include <shlobj.h>

#pragma comment(lib, "shell32.lib")
...
...
...
سلام

دوستان ببخشيد ، الان مثلا من ميخوام PathIsDirectory رو که يه تايع API هست رو تو برنامم يزارم ، تو ليست هم هست ، ميشه کدشو واسم بزاريد ؟؟ از طریق ::


ممنون
سلام

معذرت میخوام یه در خواستی کرده بودم اگه اشتباه نکنم ! کسی جواب نداره بده ؟!
اون لیست فقط برای کمک به برنامه نویسه به این معنی نیست که api تعریف هم شده

یه مثال ساده از این API
کد:
#include <windows.h>
#include <shlwapi.h>

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

int main()
{
    if ( PathIsDirectory("c:\\windows") )
        MessageBox( NULL, "Valid path.", "MsG", MB_OK );
    else
        MessageBox( NULL, "Invalid path.", "MsG", MB_OK );

    return 0;
}
سلام

ممنون ، فقط یه دو تا سوال دیگه :

کد:
#pragma comment( lib, "shlwapi.lib")

این خط یعنی چی ؟؟ (پارا متراش منظورم ؛ بالا توضیح دادید فقط واسه اعلانه )

و اینکه <windows.h> رو واسه تمام توابع API باید بیاریم ؟؟ و بجای <shlwapi.h> نام کتابخانه ای که اون API توش قرار داره ، درسته ؟؟ ( لینک msdn آنلاین که اینا توشه رو کیشه بزارید ؟ )

ممنون
صفحه‌ها: 1 2 3 4