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

نام تاپیک: آموزش افزودن کتابخانه در محیط Visual Studio

  1. #1

    Post آموزش افزودن کتابخانه در محیط Visual Studio

    با سلام دوستان ؛

    به خاطر درخواست های مکرر در رابطه با نحوه افزودن کتابخانه به C++‎‎‎‎‎‎‎‎‎‎‎‎ و استفاده از آن ها تصمیم گرفتم یک آموزشی سریع و نه چندان حرفه ای و خلاصه در رابطه با این موضوع ارائه بدم انشالله مفید باشد تا شاید پست های تکراری در رابطه با این موارد نبینیم.

    خب میرم سر اصل مطلب همانطور که میدانید زبان C/C++‎‎‎‎‎‎‎‎‎‎‎‎ یکی از قابلیت هایی که نسبت به زبان های دیگری مانند C#‎‎‎‎‎‎‎‎‎‎‎‎ یا غیره داره نامحدود بودن استفاده از کتابخانه های این زبان هست که به صورت پیشفرض کتابخانه های استاندارد و از قبل تعریف شده در زبان C++‎‎‎‎‎‎‎‎‎‎‎‎ قابل استفاده هستند مانند کلاس های iostream و ... که کاملا پیشفرض روز این زبان ارائه شده است.
    حالا در رابطه با این موضوع باید توضیحی بدم که اگر برنامه نویس یا توسعه دهنده ای نیازمند استفاده از کتابخانه ای منحصربفرد رو داره میتونه اون رو به زبان C++‎‎‎‎‎‎‎‎‎‎‎‎ اضافه کنه و ازش استفاده کنه برای مثال من برای کار با شبکه و اینترنت کتابخانه POCO رو ترجیح میدم پس برای استفاده از این ابتدا باید پیکربندی و آماده سازی لازم رو انجام بدم به صورت زیر عمل میکنم.

    ابتدا کتابخانه رو دانلود میکنم و در مسیر مقابل به صورت دلخواه قرار میدم : C:\poco-1.5.3-all
    قبل از هر چیزی باید بدونید که هر کتابخانه دارای libs و include هستش هر نوع کتابخانه ای که دانلود کنید این دو تا گزینه رو باید داشته باشه که بعد از کامپایل کتابخانه فایل lib و dll هاش در ویندوز یا Linux ایجاد خواهد شد.

    من به دلیل پیچیده بودن کتابخانه POCO (پوکو) رو انتخاب کردم چون شامل کتابخانه های مربوط به Net و ... هستش که برای آموزش هدف من کار با Net هست بنابراین پوشه های include و libs در کنار هم نخواهند بود لذا include مربوط به هر کتابخانه در داخل خودش قرار گرفته.

    خب یه پروژه با نام ExternalLibs ایجاد میکنم و روی پروژه راست کلیک و گزینه Properties مربوط رو میزنم به صورت زیر :



    بعد پنجره زیر باز میشه که به دو روش میشه libs و includes هارو بهش مشخص کرد که ساده ترینش همینه که دارم توضیح میدم.

    روی گزینه Include directories کبیک کنید و گزینه edit رو بزنید...
    حالا روز علامت new کلیک کنید به صورت زیر :



    من نسبت به مسیر کتابخانه مورد نظرم روی سیستم خودم آدرس مقابل رو میدم : : C:\poco-1.5.3-all\Net\include
    خب تا اینجا کار تمومه میریم سراغه lib به صورت زیر طبق روش قبل :

    مسیر رو میدم به صورت مقابل : : C:\poco-1.5.3-all \lib و بعد گزینه Apply و Ok

    آخرین ویرایش به وسیله کامبیز اسدزاده : چهارشنبه 29 مرداد 1393 در 13:22 عصر

  2. #2

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio


    حالا کتابخانه من باید آماده استفاده باشه به صورت زیر آزمایش میکنم :



    میبینیم که INCLUDE به درستی عمل کرده...
    و در نهایت به صورت زیر بدون مشکل کامپایل خواهد شد...

    این یک روش ساده برای یکی از کتابخانه های C++‎‎‎‎‎‎‎ هستش شما میتونید طبق همین روش نسبت به کتابخانه های دیگه نیز اقدام کنید.
    فقط نکات قابل توجه رو رعایت کنید :1. بعد از دانلود کتابخانه حتما باید کامپایل و بیلد بشه برای مثال در این کتابخانه من وارد پوشه C:\poco-1.5.3-all\Net\ شدم و کتابخانه رو توسط MSVS باز کردم و کامپایلش

    کردم تا libs های لازم در پوشه lib بشه طبق تصویر زیر : 9.png
    2. بعد از کامپایل و تولید lib حتما باید مد کامپایل رو توجه داشته باشید که اگر debug هست باید کتابخانه هم از نوع debug کامپایل بشه که معمولا در اینصورت حرف d به اخر خروجی اضافه میشه مثل PocoNetd.lib یا مثلا در Qt داریم QtCored.dll یا ... پس کلا به اینم توجه کنید که در حالت ریلیز و دیباگ متفاوت هستش.
    3. و یک گزینه که بعد از کامپایل کل پروژه با موفقیت برای اینکه بخواهید فایل dll مربوط به کتابخانه رو در کنار پروژه قرار بدین کافیه وارد پوش bin مثلا در همین کتابخانه بشید تا فایل خروجی با پسوند dll رو دریافت کنید طبق تصویر زیر :
    و در آخر باید خدمت شما عرض کنم که در رابطه با همه کتابخانه ها همین روش جوابگو هست فقط اگه مشکلی در کامپایل خود کتابخانه داشته باشید یا یکی از پیش نیاز های اون رو به درستی کامپایل نکنید ممکنه با خطا موجه بشید مثلا من در این پروژه برای اینکه از Net استفاده کنم مجبور شدم یکبار هم PocoFoundationd رو کامپایل و اون رو هم وارد Additional includes کنم تا مشکل حل بشه ! پس به این نکات ریز هم دقت کنید.

    در رابطه با wxWidget و یا Qt و هر کتابخانه دیگه هم به همین صورت میتونید اقدام کنید ولی Qt با داشتن Addons کارش راحتره که قبلا توضیح دادم و آموزشش رو ارائه دادم.

    مارو دعا کنید شاد و پیروز باشید.
    مشکلی بود مطرح کنید حلش میکنیم خیالتون تخت.

  3. #3
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,021

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    سلام من فایل های lib و h را اضافه کردم ولی این ارور را میده :

    1>dllmain.obj : error LNK2019: unresolved external symbol __imp__JAWT_GetAWT@8 referenced in function "long __stdcall Java_de_xhelp_jsevenbar_core_JSevenBar_getWindowHa  ndle(struct JNIEnv_ *,class _jclass *,class _jobject *)" (?Java_de_xhelp_jsevenbar_core_JSevenBar_getWindow  Handle@@YGJPAUJNIEnv_@@PAV_jclass@@PAV_jobject@@@Z  )



    Write Once, Run Anywhere

  4. #4

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    نقل قول نوشته شده توسط dasssnj مشاهده تاپیک
    سلام من فایل های lib و h را اضافه کردم ولی این ارور را میده :

    1>dllmain.obj : error LNK2019: unresolved external symbol __imp__JAWT_GetAWT@8 referenced in function "long __stdcall Java_de_xhelp_jsevenbar_core_JSevenBar_getWindowHa  ndle(struct JNIEnv_ *,class _jclass *,class _jobject *)" (?Java_de_xhelp_jsevenbar_core_JSevenBar_getWindow  Handle@@YGJPAUJNIEnv_@@PAV_jclass@@PAV_jobject@@@Z  )


    از چه کتابخانه ای استفاده میکنی؟
    دقیقا بگو ببینم میخوای چیکار کنی؟

  5. #5
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,021

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    آهان .
    من می خوام فایل های کتابخانه ی جاوا JDK را اضافه کنم و برای جاوا dll بنویسم .
    برای jni مشکلی ندارم ولی برای jawt.lib و jawt.dll اون ارور را میده.


    اینم کدمه :

    #include "pch.h"
    #include <jni.h>
    #include <jawt_md.h>
    BOOL APIENTRY DllMain(HMODULE /* hModule */, DWORD ul_reason_for_call, LPVOID /* lpReserved */)
    {
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
    break;
    }
    return TRUE;
    }
    JNIEXPORT jint JNICALL Java_de_xhelp_jsevenbar_core_JSevenBar_getWindowHa ndle(
    JNIEnv * env, jclass cls, jobject component) {




    JAWT awt;
    JAWT_DrawingSurface* ds;
    JAWT_DrawingSurfaceInfo* dsi;
    JAWT_Win32DrawingSurfaceInfo* dsi_win;
    jboolean result;
    jint lock;
    awt.version = JAWT_VERSION_1_4;
    result = JAWT_GetAWT(env, &awt);
    if (result != JNI_FALSE) {
    ds = awt.GetDrawingSurface(env, component);
    if (ds != NULL) {
    lock = ds->Lock(ds);
    if ((lock & JAWT_LOCK_ERROR) == 0) {
    dsi = ds->GetDrawingSurfaceInfo(ds);
    dsi_win = (JAWT_Win32DrawingSurfaceInfo*)dsi->platformInfo;
    if (dsi_win) {
    return (jint)dsi_win->hwnd;
    }
    return (jint)-1;
    }
    return (jint)-2;
    }
    return (jint)-3;
    }
    return (jint)-4;


    }



    Write Once, Run Anywhere

  6. #6

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    برو قسمت Properties طبق آموزش بعد قسمت linker و بعد Input اینجا در داخل Additional Dependencies این رو اضافه کن : jawt.lib
    آموزش های مشابه این رو هم ببین که همشون مربوط به java هست : http://www.javamex.com/tutorials/jni..._started.shtml

    این jni رو هم دانلود نشد بکنم تا بررسی کنم خودم تجربه ای با این ندارم ولی روش افزودن کتابخانه در VS برای C++‎ همینی بود که گفتم.

  7. #7
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,021

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    jni حله ولی jawt بازم ارور داره .

    Write Once, Run Anywhere

  8. #8
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,021

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    ببخشید فرق کتابخانه های lib با dll چیه ؟

    Write Once, Run Anywhere

  9. #9

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    نقل قول نوشته شده توسط dasssnj مشاهده تاپیک
    ببخشید فرق کتابخانه های lib با dll چیه ؟
    کتابخانه های lib : این نوع کتابخانه های از نوع (Static) هستند و هنگام کامپایل به برنامه اصلی همون فایل اجرایی اضافه یا همون لینک میشوند و دقیقا مانند کتابخانه های داینامیکی شامل کد هستند.

    کتابخانه های dll : این نوع کتابخانه ها هم از نوع (Dynamic) هستند همانند استاتیک شامل کدهایی هستند و برای استفاده از اینها باید در خروجی گرفتن از پروژه این نوع فایل هارو نیز در کنار برنامه و فایل اجرایی قرار بدین و فقط در هنگام نیاز به کلاس یا کد و کتابخانه ای از این ها فراخوانی خواهند شد.

  10. #10
    مدیر بخش آواتار dasssnj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    Esfahan
    پست
    1,021

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    نحوه ی اضافه کردن dll را هم بگید لطفا .

    یه سوال دیگه :
    خطای unresolved external symbol در چه مواقعی رخ میده ؟

    Write Once, Run Anywhere

  11. #11

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    نقل قول نوشته شده توسط dasssnj مشاهده تاپیک
    نحوه ی اضافه کردن dll را هم بگید لطفا .

    یه سوال دیگه :
    خطای unresolved external symbol در چه مواقعی رخ میده ؟
    نحوه اضافه کردن dll که گفتم وقتی شما کتابخانه رو Compile میکنی در پوشه پیشفرض مثلا bin میتونید فایل dll رو پیدا کنید و در کنار فایل اجرایی قرار بدین و اگه از dll خارجی و نامربوط به پروژه رو میخواهید وارد پروژه کنید در این صورت این لینک رو هم ببینید : http://stackoverflow.com/questions/8...nother-program

    و اما در مورد خطای unresolved external symbol زمانی رخ میده که شما کتابخانه ای رو به صورت External وارد پروژه میکنید و در صورت عدم لینک شدن کتابخانه به درستی اوناین خطارو خواهید دید که برای رفعش با رعایت اصول کامپایل کتابخانه و حتی معماری و مد کامپایلش با پروژه هماهنگ و در نهایت مشکل رو رفع کنید.

  12. #12

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    سلام.من یک الگوریتم نوشتم که میخوام موازی اجرا بشه و اولش <include <omp.h
    داره و موقع اجرا این ارور رو میده:
    fatal error C1083: Cannot open include file: 'omp.h': No such file or directory
    میشه لطفا راهنمایی کنید؟

  13. #13

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    سلام من یک سوال دارم ممنون میشم راهنمایی کنید، من DEVC++‎ رو نصب کردم و حالا می خوام از کتابخونه boost استفاده کنم (boost_1_33_1). این فایلی که من از boost دارم libs داره ولی include نداره. میشه لطفا بگید توی devC++‎ چه طور میشه این ها رو لینک کنم.

  14. #14

    نقل قول: آموزش افزودن کتابخانه در محیط Visual Studio

    این مراحلی اینجا گذاشتین هم توی ویژوال کد استودیو میشه پیاده سازی کرد یا نه فقط خاصه ویژوال استودیو هستش؟

تاپیک های مشابه

  1. سوال: چگونه می توانم رنگ محیط visual studio 2005 راتغییر بدم
    نوشته شده توسط r_khan در بخش C#‎‎
    پاسخ: 4
    آخرین پست: دوشنبه 28 اردیبهشت 1388, 08:12 صبح
  2. در محیط visual studio.net چطور می توان برای سایت منو طراحی کرد
    نوشته شده توسط radan63 در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: یک شنبه 18 تیر 1385, 06:17 صبح
  3. component برای شبیه سازی محیط Visual Studio .Net
    نوشته شده توسط leilav_1984 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 21 آبان 1384, 16:26 عصر
  4. برنامه نویسی PHP در محیط Visual Studio.Net
    نوشته شده توسط مهدی کرامتی در بخش PHP
    پاسخ: 5
    آخرین پست: جمعه 27 شهریور 1383, 17:32 عصر

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

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