سلام
اول اینکه جناب 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 آنلاین که اینا توشه رو کیشه بزارید ؟ )
ممنون