صفحه 2 از 2 اولاول 12
نمایش نتایج 41 تا 57 از 57

نام تاپیک: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

  1. #41

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    این پست درمورد اینه که چطور برای فایل exe خودمون آیکون بذاریم.
    انجام این کار خوشبختانه خیلی ساده است:
    - فایل آیکون خودتون رو با فرمت ico ایجاد و در دایرکتوری پروژه ذخیره کنید؛ در اینجا فرض کنید که نامش myappico.ico هست.
    - یک فایل متن، در اینجا با نام myapp.rc، ایجاد کنید که خط زیر درونش باشه:

    IDI_ICON1 ICON DISCARDABLE "myappico.ico"

    - خط زیر رو به فایل پروژه اضافه کنید:

    RC_FILE = myapp.rc

    - دستورات زیر رو برای تولید make file و فایل اجرایی برنامه اجرا کنید:

    qmake
    mingw32-make release

  2. #42

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ............

  3. #43

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    توضیح: پست تاریخچه ای (مشکل Phonon در نسخه های اخیر کیوت کاملا حل شده و نیازی به استفاده از این برنامه/پکیج نیست)

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

    يك نسخهء جديد از phonon4qtmingw رو تهيه كردم.
    تغييرات:
    - يك باگ كه در محيط 64 بيتي گزارش و مشخص شده بود برطرف شد.
    - امكان كامپايل كتابخانه هاي مخصوص Debug هم كه تقريبا ضروري بود و اشتباه كردم در نسخهء اوليه نذاشتم، اضافه شد.
    الان ديگه لازم نيست برنامه هاتون رو فقط درحالت release كامپايل كنيد.
    حالا اولين سوالي كه بعد از اقدام به اجراي phonon4qt پرسيده ميشه اينه كه آيا ميخوايد فقط درحالت release كامپايل كنيد يا خير (كامپايل در حالت release only حدود 50% زمان كمتري ميبره).
    وجود حالت release only براي بعضي تست ها و حتي رفع بعضي مشكلات ممكن هم ميتونه مفيد باشه. بنابراين من اين حالت رو بصورت گزينه در برنامه باقي گذاشتم.
    - كتابخانه هاي توسعهء دايركت ايكس 64 بيتي حذف شدن. چون ظاهرا كيوت از كامپايل بصورت 64 بيت روي ويندوز پشتيباني نميكنه. ولي نگران نباشيد چيز مهمي نيست و مانعي براي كامپايل و استفاده از كيوت همراه با phonon روي سيستمها و ويندوز 64 بيتي وجود نداره. البته تست نكردم چون سيستم و ويندوز 64 بيتي ندارم (هركس تست كرد اطلاع بده تا مطمئن بشيم).
    ضمنا با حذف اين كتابخانه ها حجم پكيج حتي كمتر شده و به 3 مگابايت رسيده!

    لينك دانلود نسخهء جديد:
    4shared.com - online file sharing and storage - download phonon4qtmingw--2.zip

  4. #44

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ....................

  5. #45

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    توضیح: پست تاریخچه ای (مشکل Phonon در نسخه های اخیر کیوت کاملا حل شده و نیازی به استفاده از این برنامه/پکیج نیست)

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

    نسخه جديدي از phonon4qtmingw ساخته شد:
    4shared.com - online file sharing and storage - download phonon4qtmingw--3.zip
    اين نسخه اساسا با نسخه هاي قبلي فرق داره و از روش متفاوتي استفاده ميكنه. و بخاطر اينكه فقط بخشهايي از Qt رو كه براي ساخت phonon لازم هستن كامپايل ميكنه سرعتش خيلي بالاتر رفته.
    اين برنامه هرچند داراي روش غيراستاندارد و تجربي هست اما روي qt-sdk-win-opensource-2009.04 و دو سيستم متفاوت با ويندوز XP سرويس پك 2 و 3 تست كردم و ظاهرا كار ميكنه و مشكلي نيست. خلاصه چند بار تاجايي كه ميتونستم تست كردم.
    بهرحال اگر كسي تست كرد لطفا نتيجه رو اطلاع بده كه اگر مشكلي بود سعي كنم روش استاندارد رو بررسي كنم.
    اين پكيج رو ابتدا با روش استانداردتري ساخته بودم، اما يك مرحله (configure) زمان زيادي ميبرد (حدود 40 دقيقه روي يك سيستم 800 مگاهرتزي) چون روي كل Qt اعمال ميشد و نه فقط بخشهايي كه براي ساخت phonon لازم هستن و بنابراين سعي كردم با يك روش ابتكاري دستي جايگزينش كنم كه ظاهرا موفق شدم، ولي بهرحال چون روش غيراستاندارد و تجربي هست فقط تست و استفاده عملي پشتوانهء اون هست و تضميني نيست با نسخه هاي بعدي Qt هم كار كنه (اما احتمالا ميتونم ارتقاش بدم).
    سرعتش واقعا فوق العاده شده! تنها چند دقيقه روي يك سيستم امروزي قوي . يا مثلا حدود 15 دقيقه روي يك سيستم 800 مگاهرتزي قديمي بنده كه قبلا حدود 7 ساعت زمان ميبرد!
    البته اينم بگم كه ممكنه بعدا تنظيمات بيشتري از برنامهء configure رو پيدا كنم كه بدرد اينكار بخورن و روش غيراستاندارد رو با روش استاندارد (استفاده از configure) جايگزين كنم؛ ولي فعلا اطلاعات كافي در اين زمينه نداشتم (احتمالا بزودي جستجو ميكنم و ميپرسم).

  6. #46

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ..........

  7. #47

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    یکی از دوستان درمورد چگونگی استفاده از سرورهای SQL مثل MySQL و اوراکل و غیره در Qt پرسیده بودن. این پرسش منجر به تحقیق و تست و درج مطالبی در چند پست در اینمورد شد که خلاصهء مفید اونها رو در این پست ارائه میکنم.

    اولا این مطلب از رفرنس کیوت درمورد دیتابیس های پشتیبانی شده توسط کیوت:
    The table below lists the drivers included with Qt. Due to license incompatibilities with the GPL, not all of the plugins are provided with the Qt Open Source Edition.

    Driver name DBMS
    QDB2 IBM DB2 (version 7.1 and above)
    QIBASE Borland InterBase
    QMYSQL MySQL
    QOCI Oracle Call Interface Driver
    QODBC Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases
    QPSQL PostgreSQL (versions 7.3 and above)
    QSQLITE2 SQLite version 2
    QSQLITE SQLite version 3
    QTDS Sybase Adaptive Server

    Note: To build a driver plugin you need to have the appropriate client library for your Database Management System (DBMS). This provides access to the API exposed by the DBMS, and is typically shipped with it. Most installation programs also allow you to install "development libraries", and these are what you need. These libraries are responsible for the low-level communication with the DBMS.


    مورد تست دیتابیس MySQL بوده.
    ما ابتدا از ODBC برای اتصال به MySQL استفاده میکنیم.
    ابتدا درایور ODBC مربوطه را دانلود میکنیم:
    http://mysql.he.net/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.6-win32.msi

    درج این آدرس بخاطر این بود که دسترسی به لینک دانلود بخاطر تحریم کمی مشکل بود (نیاز به فیلترشکن)، وگرنه بطور معمول خودتون باید جستجو و نسخهء مناسب رو از مکان مناسب دانلود کنید.
    بعد از نصب و انجام تنظیمات ODBC لازم در ویندوز (این بخشها به خود کیوت مربوط نمیشن و توضیح نمیدم)، میتونیم با چنین کد تست ساده و مختصری برقراری اتصال و دسترسی موفق رو بررسی کنیم:
    #include <QtSql>
    #include <QApplication>
    #include <QDebug>

    int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("mysqlxx");
    if(!db.open()) {
    qDebug("error in opening!");
    QSqlError err=db.lastError();
    qDebug()<<err.databaseText();
    qDebug()<<err.driverText();
    return 1;
    }
    else qDebug("success");

    QSqlQuery query;
    query.exec("SELECT * FROM counter");

    while (query.next()) {
    QString c = query.value(0).toString();
    qDebug() << c << '\n';
    }

    qDebug("-------------end---------------\npress Ctrl+C to exit!");

    return app.exec();
    }

    در قسمت setDatabaseName توجه میکنیم که بجای نام دیتابیس اصلی نامی رو که برای data source name در تنظیمات ODBC ویندوز انتخاب کردیم بهش میدیم. ضمنا ظاهرا دیگه نیازی به یوزرنیم و پسورد MySQL هم نبود! (اگر لازم بود به نمونه کد روش بعدی مراجعه کنید).
    یادتون باشه به فایل پروژهء این برنامهء تست این دو خط رو هم اضافه کنید:
    QT += sql
    CONFIG+=console



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

    روش دیگر استفاده از درایور مخصوص خود MySQL هست.

    در کیوت احتمالا بخاطر مواردی مثل حجم و غیره (یا مورد ناسازگاری مجوز که گفته)، پلاگین درایور MySQL و کتابخانهء اون بصورت پیشفرض وجود ندارن.
    طرز ساخت و استفاده از پلاگین MySQL رو طوری که خودم انجام دادم شرح میدم. توجه کنید که بعضی پارامترها ممکنه برای شما و نسخه هایی که استفاده میکنید تفاوت داشته باشن.

    اولا چون من از EasyPHP 2.0b1 برای محیط برنامه نویسی وب روی سیستم خودم استفاده میکردم و میدونیم که EasyPHP شامل وب سرور آپاچی همراه با ماجول PHP، و سرور دیتابیس MySQL هست، خواستم تا از همین نسخه از MySQL که همراه EasyPHP هست استفاده کنم. ضمنا من این نسخه از EasyPHP رو از قبل روی سیستم نصب داشتم و احتمالا الان دیگه قدیمی شده. نکتهء دیگه اینکه اگر شما فقط به یک سرور MySQL نیاز دارید و نه یک محیط برنامه نویسی وب، بهتره فقط یک سرور MySQL رو جداگانه نصب و اجرا کنید؛ استفاده از EasyPHP در اینجا فقط بخاطر این بوده که بنده برنامه نویسی وب هم میکنم و این برنامه از قبل روی سیستمم نصب بوده.
    خب اول باید نسخهء MySQL رو بفهمیم. اینکار از راههای مختلفی امکان پذیر هست. احتمالا راحتترین راهش اینه که روی آیکون EasyPHP در تسکبار کلیک راست کرده و گزینهء Administration رو انتخاب کنید که در نتیجه در صفحهء باز شده نسخهء 5.0.27 رو برای من نشون میداد.
    حالا باید هدرها و کتابخانه های مختص این نسخه از MySQL رو پیدا و دانلود کنیم.
    من نهایتا پس از جستجو از این آدرس دانلودشون کردم:
    http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.89-win32.zip/from/http://mysql.llarian.net/

    این آدرس مستقیم رو بعنوان نمونه گذاشتم و ضمنا اینکه بعلت تحریم نیاز به استفاده از روشهایی مثل فیلترشکن برای رسیدن به این آدرس بود.
    بعد از دانلود باید برنامهء نصبی رو که داخل فایل زیپ هست اجرا و اجزای MySQL رو نصب کنید (موقع نصب گزینهء Complete رو انتخاب کردم).

    حالا اینکارها رو انجام میدیم:
    - همهء فایلهای موجود در C:\Program Files\MySQL\MySQL Server 5.0\include رو به E:\Qt2009.05\qt\include کپی کنید.
    مسلمه که آدرس محل نصب Qt SDK و MySQL که دانلود کردید ممکنه برای شما متفاوت باشه.
    - از آدرس C:\Program Files\MySQL\MySQL Server 5.0\lib\opt فایل libmysql.lib رو به E:\Qt2009.05\qt\lib کپی کنید.
    - از دایرکتوری C:\Program Files\MySQL\MySQL Server 5.0\lib\opt فایل libmysql.dll رو به E:\Qt2009.05\qt\bin کپی کنید.
    - خط فرمان کیوت رو اجرا کرده و دایرکتوری جاری رو به E:\Qt2009.05\qt\src\plugins\sqldrivers\mysql تغییر بدید.
    - فرمان qmake رو اجرا کنید.
    - فرمان mingw32-make رو اجرا کنید.

    بعد از تمام شدن اجرای این فرمانها کار تمامه!
    اگر به دایرکتوری E:\Qt2009.05\qt\plugins\sqldrivers مراجعه کنید باید فایلهای مربوط به MySQL رو ببینید (درمورد مال من، 4 فایل هست که در نام اونها عبارت mysql وجود داره).
    این هم یک برنامهء تست خیلی مختصر و ساده:
    #include <QtSql>
    #include <QApplication>

    int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("database1");
    db.setUserName("mysql_username");
    db.setPassword("mysql_password");
    if(!db.open()) {
    qDebug("error in opening!");
    return 1;
    }
    else qDebug("success");

    QSqlQuery query;
    query.exec("SELECT * FROM table1");

    while (query.next()) {
    QString c = query.value(0).toString();
    qDebug() << c << '\n';
    }

    qDebug("-------------end---------------\npress Ctrl+C to exit!");



    return app.exec();
    }

    یادتون باشه به فایل پروژهء این برنامهء تست این دو خط رو هم اضافه کنید:
    QT += sql
    CONFIG+=console


    بعد با فرمان qmake و بعد mingw32-make release برنامه رو کامپایل میکنیم (استفاده از release بخاطر بالا بردن سرعت کامپایل و سرعت اجرای برنامه هست).
    بعد با فرمان release\test.exe برنامه رو تست میکنیم. البته حتما قبلش باید سرور MySQL درحال اجرا باشه (درمورد بنده یعنی EasyPHP اجرا شده باشه).
    حالا فقط یادتون باشه وقتی برنامتون رو میخواید توزیع کنید باید علاوه بر dll های معمول و اونهایی که صریحا درخواست میکنه، حتما اینکارها رو هم انجام بدید:
    - یک نسخه از libmysql.dll رو همراه برنامه قرار بدید (در دایرکتوری خود برنامه).
    - یک دایرکتوری بنام sqldrivers در دایرکتوری برنامه ایجاد کرده و از آدرس E:\Qt2009.05\qt\plugins\sqldrivers فایل qsqlmysql4.dll رو به داخل این دایرکتوری کپی کنید.

  8. #48

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ............

  9. #49

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    سلام بر دوستان گرامی.
    من شخصا با استفاده از کتابخانهء رمزگذاری مورد نظر در Qt مشکلات زیادی داشتم.
    ظاهرا نسخهء کامپایل شدهء کتابخانهء معروف crypto++ که برای دانلود قرار داده شده (crypto++ یک کتابخانه رمزگذاری نوشته شده در زبان سی++ هست) توسط کامپایلر میکروسافت (MSVC) کامپایل شده و با کامپایلر پکیج mingw کار نمیکنه. بنابراین ما در استفاده از امکانات رمزگذاری این کتابخانه در برنامه های Qt خودمون به مشکل جدی برمیخوریم (بنظرم مگر اینکه Qt ما هم با MSVC کامپایل شده باشه).
    اما خوشبختانه بنده پس از تلاشهای چندی بطور غیرمنتظره ای موفق به حل این مسئله شدم.
    من این روش رو بصورت قدم به قدم برای هر جوینده ای درحال و آینده در این تاپیک قرار میدم.

    شروع:

    ابتدا پکیج cryptopp552.zip رو از سایت پروژهء crypto++ در sourceforge (ا Crypto++ | Get Crypto++ at SourceForge.net ) دانلود کنید.
    این پکیج محتوی فایلهای کد منبع این کتابخانه هست. حجمش هم حدود 1 مگابایت.

    خب چرا این فایل؟
    چون ظاهرا این آخرین نسخه از این کتابخانه بوده که توسط دیگران هم بصورت موفقیت آمیز با mingw کامپایل شده (اما من فرم کامپایل شدهء اون رو پیدا نکردم).

    محتویات cryptopp552.zip رو به C:\cryptopp552 اکسترکت کنید.

    حالا فایل C:\cryptopp552\fipstest.cpp رو با یک ویرایشگر مناسب باز کنید و تمام عبارات OutputDebugString رو به OutputDebugStringA تغییر بدید و فایل رو ذخیره کرده و ببندید. مجموعا سه تا از این عبارت ها در این فایل وجود داره.

    فایل C:\cryptopp552\GNUmakefile رو دلیت کنید.

    خط فرمان Qt رو باز کنید (من از Qt SDK 2009.05 استفاده کردم).
    فرمانهای زیر رو به ترتیب در خط فرمان وارد کنید:

    c:
    cd \cryptopp552
    qmake -project
    حالا فایل cryptopp552.pro رو که با فرمان آخر در C:\cryptopp552 ایجاد شده برای ویرایش باز کنید و این کارها رو انجام بدید:

    TEMPLATE = app رو به TEMPLATE = lib تغییر بدید.
    یک خط با محتوای LIBS += -lws2_32 به انتهای این فایل اضافه کنید.

    دوباره فرمانهای زیر رو در خطر فرمان Qt وارد کنید:

    qmake
    mingw32-make all
    اجرای فرمان آخر بسته به سرعت سیستم شما دقایقی کم یا زیاد طول میکشه.

    حالا ما باید فایلهایی با نام libcryptopp552.a و cryptopp552.dll در هر دوی فولدرهای C:\cryptopp552\release و C:\cryptopp552\debug داشته باشیم. تمام توابع و کلاسهای کتابخانهء crypto++ در همین یک فایل dll هست.

    C:\cryptopp552\release\libcryptopp552.a رو به فولدر lib در فولدر Qt کپی کنید.
    توجه کنید که یک فولدر دیگر بنام lib در یک سطح بالاتر از فولدر Qt در فولدر نصب Qt SDK وجود داره که نباید این دوتا رو با هم قاطی کنید. فایل رو باید در فولدر lib خود Qt بریزید اما اگر فایل رو در هر دو هم کپی کنید مشکلی پیش نمیاد.

    فایل C:\cryptopp552\release\cryptopp552.dll رو به فولدر bin در فولدر Qt کپی کنید.
    توجه کنید که یک فولدر دیگر بنام bin در یک سطح بالاتر از فولدر Qt در فولدر نصب Qt SDK وجود داره که نباید این دوتا رو با هم قاطی کنید. فایل رو باید در فولدر bin خود Qt بریزید اما اگر فایل رو در هر دو هم کپی کنید مشکلی پیش نمیاد.

    یک فولدر بنام cryptopp در فولدر include که در فولدر Qt هست ایجاد کنید و تمام فایلهای هدر (فایلهایی با پسوند h) رو که در فولدر C:\cryptopp552 وجود دارن به داخل این فولدری که ایجاد کردید کپی کنید.

    اکنون ما میتونیم crypto++ رو تست کنیم و ببینیم که چطور باید از اون در برنامه های Qt خودمون استفاده کنیم.

    مثال اول برنامه ای هست که هش MD5 یک رشته رو (که در برنامه hard code شده) محاسبه و چاپ میکنه:

    main.cpp

    #include <iostream>

    #define CRYPTOPP_DEFAULT_NO_DLL
    #include <cryptopp/dll.h>
    #ifdef CRYPTOPP_WIN32_AVAILABLE
    #include <windows.h>
    #endif
    #include <cryptopp/md5.h>

    USING_NAMESPACE(CryptoPP)
    USING_NAMESPACE(std)
    const int MAX_PHRASE_LENGTH=250;

    int main(int argc, char *argv[]) {

    CryptoPP::MD5 hash;
    byte digest[ CryptoPP::MD5::DIGESTSIZE ];
    std::string message = "Hello World!";

    hash.CalculateDigest( digest, (const byte*)message.c_str(), message.length());

    CryptoPP::HexEncoder encoder;
    std::string output;
    encoder.Attach( new CryptoPP::StringSink( output ) );
    encoder.Put( digest, sizeof(digest) );
    encoder.MessageEnd();

    std::cout << "Input string: " << message << std::endl;
    std::cout << "MD5: " << output << std::endl;

    return 0;
    }
    کد برنامه برگرفته از: : Hash Functions - Crypto++ Wiki

    یادتون باشه قبل از اینکه شروع به مراحل کامپایل برنامه (معمولا با فرمانهای qmake و mingw32-make) بکنید باید این خطوط رو به فایل پروژهء اون (فایلی با پسوند pro) اضافه کنید:

    LIBS += -lcryptopp552
    CONFIG+=console

    برنامه چنین خروجی ای رو باید در پنجرهء کنسول چاپ کنه:
    Input string: Hello World!
    MD5: ED076287532E86365E841E92BFC50D8C

    مثال دوم برنامه ای هست که سه آرگومان که هر کدام نام/آدرس یک فایل هستن میگیره.
    برنامه بعد از کاربر یک پسورد میخواد، بعد یک نسخهء رمز شده از فایل اول رو در فایل دوم ذخیره میکنه و بعد یک نسخهء از رمز درآمده از فایل دوم رو در فایل سوم ذخیره میکنه. یعنی اول رمز میکنه و بعد فایل رمز شده رو رمزگشایی میکنه.

    خط فرمان نمونه ای که من استفاده کردم مثل این بوده:
    release\cryptopptest.exe 1.jpg 2.jpg 3.jpg
    فقط نیاز داریم که فایل اول رو داشته باشیم که در اینجا یک فایل تصویری بوده.

    main.cpp

    #include <iostream>

    #define CRYPTOPP_DEFAULT_NO_DLL
    #include <cryptopp/dll.h>
    #include <cryptopp/default.h>
    #ifdef CRYPTOPP_WIN32_AVAILABLE
    #include <windows.h>
    #endif

    USING_NAMESPACE(CryptoPP)
    USING_NAMESPACE(std)

    const int MAX_PHRASE_LENGTH=250;

    void EncryptFile(const char *in,
    const char *out,
    const char *passPhrase);
    void DecryptFile(const char *in,
    const char *out,
    const char *passPhrase);


    int main(int argc, char *argv[])
    {
    try
    {
    char passPhrase[MAX_PHRASE_LENGTH];
    cout << "Passphrase: ";
    cin.getline(passPhrase, MAX_PHRASE_LENGTH);
    EncryptFile(argv[1], argv[2], passPhrase);
    DecryptFile(argv[2], argv[3], passPhrase);
    }
    catch(CryptoPP::Exception &e)
    {
    cout << "\nCryptoPP::Exception caught: "
    << e.what() << endl;
    return -1;
    }
    catch(std::exception &e)
    {
    cout << "\nstd::exception caught: " << e.what() << endl;
    return -2;
    }
    }


    void EncryptFile(const char *in,
    const char *out,
    const char *passPhrase)
    {
    FileSource f(in, true, new DefaultEncryptorWithMAC(passPhrase,
    new FileSink(out)));
    }

    void DecryptFile(const char *in,
    const char *out,
    const char *passPhrase)
    {
    FileSource f(in, true,
    new DefaultDecryptorWithMAC(passPhrase, new FileSink(out)));
    }

    RandomPool & GlobalRNG()
    {
    static RandomPool randomPool;
    return randomPool;
    }
    int (*AdhocTest)(int argc, char *argv[]) = NULL;
    کد برنامه برگرفته از: : Crypto++<sup></sup> Holds the Key to Encrypting Your C++‎‎ Application Data - CodeGuru

    یادتون باشه قبل از اینکه شروع به مراحل کامپایل برنامه (معمولا با فرمانهای qmake و mingw32-make) بکنید باید این خطوط رو به فایل پروژهء اون (فایلی با پسوند pro) اضافه کنید:

    LIBS += -lcryptopp552
    CONFIG+=console

    --------------------------------

    موفق باشید.

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

    پانوشت جدید: فایلهای dll آمادهء این کتابخانهء رمزنگاری رو که با MinGW کامپایل کردم میتونید از این آدرس دانلود کنید: http://www.4shared.com/file/Q46L93Z7...n-nodebug.html (فقط نسخهء release که حجمش 2.5 مگابایت هست) و http://www.4shared.com/file/jp_Jsvdr...mingw-bin.html (محتوی dll های debug و release بصورت جداگانه - 12 مگابایت).
    ویرایش: اینم رفرنس رسمی crypto++ v5.51 که تازگی آپلود کردم: http://www.4shared.com/file/S5jvueo-...oPP551Ref.html
    آخرین ویرایش به وسیله eshpilen : سه شنبه 21 دی 1389 در 21:27 عصر

  10. #50

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ................

  11. #51

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    این یک تابع هست که من برای رمزگذاری یک فایل که در حافظه در یک QByteArray ذخیره شده بود نوشتم و تست کردم.
    این تابع یک QByteArray و یک پسورد (هشدار: ممکنه با کاراکترهای غیرلاتین کار نکنه؛ تست نکردم) رو میگیره و بعد محتویات QByteArray رو رمز میکنه. یعنی نتیجهء رمزگذاری در همون QByteArray ذخیره میشه و تابع مقدار برگشتی ای نداره.
    کلاسی از Crypto++ که برای این تابع استفاده شده کلاس DefaultEncryptorWithMAC هست که از این الگوریتم استفاده میکنه: DES-EDE2 and HMAC/SHA-1

    void encrypt(QByteArray &in_out, const char *passPhrase) {

    string tmp;
    StringSource s((const byte *)in_out.constData(), in_out.size(), true, new DefaultEncryptorWithMAC(passPhrase, new StringSink(tmp)));
    in_out.clear();
    in_out.append(QByteArray(tmp.c_str(), tmp.size()));

    }


    برای رمزگشایی شما فقط بجای DefaultEncryptorWithMAC به یک DefaultDecryptorWithMAC نیاز دارید. بنابراین تابع رمزگشایی ما به شکل زیر هست:

    void decrypt(QByteArray &in_out, const char *passPhrase) {

    string tmp;
    StringSource s((const byte *)in_out.constData(), in_out.size(), true, new DefaultDecryptorWithMAC(passPhrase, new StringSink(tmp)));
    in_out.clear();
    in_out.append(QByteArray(tmp.c_str(), tmp.size()));

    }


    من دربارهء کتابخانهء Crypto++ کاملا تازه کار هستم (و بطور کلی در مقولهء cryptography ) و رفرنس Crypto++ رو فقط بصورت محدود خوندم برای اینکه بتونم کارم رو راه بندازم. بنابراین ممکنه این کاربرد رو بشه با کد بهتری نوشت که اگر سراغ داشتید اطلاع بدید.

  12. #52
    کاربر دائمی آواتار modirmasool
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Home is where the heart is
    پست
    491

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    eshpilen جان سلام خسته نباشی. واقعا مطالبی جالب و مفیدی رو ارائه کردین. میخواستم بدونم Visual Studio Add-in ای که در پایین سایت http://qt.nokia.com/downloads به طور مختصر درموردش توضیح داده رو اگه دانلود کنم کفایت میکنه؟ میتونیم تمام کارهامونو با اون انجام بدیم؟

    Want to use Qt together with Visual Studio on Windows? Download the Visual-Studio add-in, which can be used for development together with all Qt licenses.

    qt-vs-addin-1.1.7.exe (57 MB)


    یه سری کتابخونه هم در صفحه دانلودش داره که تحت عنوان Qt libraries 4.7.1 for Windows (minGW 4.4, 319 MB) هستش. این رو هم باید دانلود کنیم یا همون Qt SDK for Windows* (322 MB) کفایت میکنه؟

    ممنون

  13. #53

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    شرمنده مطمئن نیستم و نسخه های اخیر Qt رو بررسی نکردم که چه تغییراتی کردن.
    اما فکر میکنم اون Visual-Studio add-in به تنهایی کافی نیست و فقط باعث میشه بتونی در محیط ویژوال استودیو با کیوت کار کنی. یعنی باید کتابخانه های کیوت یا دیگر اجزاش نصب بشن. حالا اینکه دقیقا چیا و چطوری نمیدونم چون تاحالا دانلود و امتحان نکردم. بنظرم باید دانلود کنی و طبق دستورالعمل هایی که خودش میده و راهنمایی که داره روشن بشه. فکر میکنم بهتر باشه اول SDK خودش رو دانلود و نصب کنی در قدم اول، بعد Visual-Studio add-in رو نصب کنی ببینی چی میشه. احتمالا مسیر نصب کیوت رو میخواد مثلا یا خودش بصورت خودکار پیداش میکنه. اینا همه حدسه البته که امیدوارم درست باشه و کمک کنه.

    درمورد libraries و SDK هم SDK رو دانلود کن. SDK کامل هست و خودش شامل کتابخانه ها (libraries) هم میشه. libraries به تنهایی برای سناریوهای خاصی هست که بدرد شما نمیخوره.

    راستی نمیدونم وقتی با ویژوال استودیو میخوای کار کنی شاید باید Qt libraries 4.7.1 for Windows (VS 2008, 228 MB) رو دانلود کنی. اگر به مشکل خوردی این گزینه رو بررسی کن.

    ببخشید دیگه اطلاعات بیشتر در این زمینه ندارم و اینا همش حدس هست چون خودم تاحالا این جورش رو امتحان نکردم. ضمنا خیلی وقت هم Qt کار نکردم.

    راستی میتونی از فروم http://www.qtcentre.org/forum.php هم استفاده کنی برای پرسیدن اینطور سوالات. در تالار مربوطه البته (مربوط به نصب و اینها). البته به زبان انگلیسیه.

  14. #54
    کاربر دائمی آواتار modirmasool
    تاریخ عضویت
    اسفند 1388
    محل زندگی
    Home is where the heart is
    پست
    491

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    نقل قول نوشته شده توسط eshpilen مشاهده تاپیک
    شرمنده مطمئن نیستم و نسخه های اخیر Qt رو بررسی نکردم که چه تغییراتی کردن.
    اما فکر میکنم اون Visual-Studio add-in به تنهایی کافی نیست و فقط باعث میشه بتونی در محیط ویژوال استودیو با کیوت کار کنی. یعنی باید کتابخانه های کیوت یا دیگر اجزاش نصب بشن. حالا اینکه دقیقا چیا و چطوری نمیدونم چون تاحالا دانلود و امتحان نکردم. بنظرم باید دانلود کنی و طبق دستورالعمل هایی که خودش میده و راهنمایی که داره روشن بشه. فکر میکنم بهتر باشه اول SDK خودش رو دانلود و نصب کنی در قدم اول، بعد Visual-Studio add-in رو نصب کنی ببینی چی میشه. احتمالا مسیر نصب کیوت رو میخواد مثلا یا خودش بصورت خودکار پیداش میکنه. اینا همه حدسه البته که امیدوارم درست باشه و کمک کنه.

    درمورد libraries و SDK هم SDK رو دانلود کن. SDK کامل هست و خودش شامل کتابخانه ها (libraries) هم میشه. libraries به تنهایی برای سناریوهای خاصی هست که بدرد شما نمیخوره.

    راستی نمیدونم وقتی با ویژوال استودیو میخوای کار کنی شاید باید Qt libraries 4.7.1 for Windows (VS 2008, 228 MB) رو دانلود کنی. اگر به مشکل خوردی این گزینه رو بررسی کن.

    ببخشید دیگه اطلاعات بیشتر در این زمینه ندارم و اینا همش حدس هست چون خودم تاحالا این جورش رو امتحان نکردم. ضمنا خیلی وقت هم Qt کار نکردم.

    راستی میتونی از فروم http://www.qtcentre.org/forum.php هم استفاده کنی برای پرسیدن اینطور سوالات. در تالار مربوطه البته (مربوط به نصب و اینها). البته به زبان انگلیسیه.
    خیلی ممنون
    فقط میشه بپرسم چرا دیگه ازش استفاده نمیکنین؟

  15. #55

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    چون پروژهء نرم افزاري خاصي ندارم/نداشتم.
    الان درحال يادگيري دات نت هستم.
    بنده شغلم درحال حاضر ارتباط مستقيمي با برنامه نويسي نداره، اما خيلي علاقمند به برنامه نويسي هستم و عمدهء فعاليت تخصصي بنده در اين زمينه بوده و هست و براي آينده كم و بيش اين رشته رو درنظر دارم.

    چون ديدم براي اينكه بتوني هر برنامه اي رو براي هر نيازي در هر محيطي بنويسي نياز به يادگيري چند زبان و فريمورك داري، رفتم دنبال يادگيري زبانها و فريمورك هاي مختلف در حيطه هاي مختلف (يعني هم وب و هم دسكتاپ). ضمنا يكي از دلايل هم اعتقاد و علاقمندي زياد به فلسفه و مزايا و آزادي نرم افزارهاي آزاد و بازمتن كه گنو/لينوكس هم جزيي از اونهاست بود كه دنبال زبانها و ابزارهاي آزاد/بازمتن رفتم. ميدونيد كه Qt بازمتن هست و يكي از فريمورك هاي اصلي برنامه نويسي اپليكيشن در گنو/لينوكس هست.

    بعدا پروژه هاي مختلفي درنظر دارم كه ممكنه نياز باشن هركدوم با يك زبان و فريمورك نوشته بشن و شايد از Qt هم در يكي از اونا استفاده كردم. خب بستگي داره چي باشه و كجا بكار بره و چه خواصي مورد نياز باشه. براي هرچيزي يك شرايط و نياز و امكان انتخابهاي مختلفي هست. هيچوقت با يك زبان و فريمورك نميشه همه جا همه كار كرد (حداقل تاحالا كه نشده). حتي با چيزهاي گسترده اي مثل دات نت و جاوا. تمام مسائل كم و بيش نسبي هستن.

  16. #56

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    ضمن تشکر از توضیحاتتون .
    و ببخشید که بعد از 3 سال پست میدم :دی
    البته فکر کنم اون سایت که معرفی کردید دیگه برای دانلود Qt معتبر نباشه درسته ؟من یه جستجو کردم به سایت qt-project.org برخوردم و از اون الان دارم ورژن 5.1 رو دانلود میکنم((Qt 5.1.0 for Windows 64-bit (VS 2012, OpenGL, 522 MB)) با حجم 600 mb
    مسیر رو درست رفتم؟
    من تازه میخوام برم سمت Qt اطلاعاتم کمه توی این زمینه ممنون میشم یه توضیح بدید مثلا اونجا که زده vs 21012 منظورش چی بوده؟یعنی تحت محیط ویژوال استدیو از Qt استفاده میکنه؟

    بازم تشکر از دوست خوبم eshpilen برای توضیحات خوبشون

  17. #57
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مرداد 1391
    سن
    29
    پست
    596

    نقل قول: معرفی فریمورک اپلیکیشن نویسی آزاد و مستقل از پلتفرم Qt

    نقل قول نوشته شده توسط hamidhws مشاهده تاپیک
    ضمن تشکر از توضیحاتتون .
    و ببخشید که بعد از 3 سال پست میدم :دی
    البته فکر کنم اون سایت که معرفی کردید دیگه برای دانلود Qt معتبر نباشه درسته ؟من یه جستجو کردم به سایت qt-project.org برخوردم و از اون الان دارم ورژن 5.1 رو دانلود میکنم((Qt 5.1.0 for Windows 64-bit (VS 2012, OpenGL, 522 MB)) با حجم 600 mb
    مسیر رو درست رفتم؟
    من تازه میخوام برم سمت Qt اطلاعاتم کمه توی این زمینه ممنون میشم یه توضیح بدید مثلا اونجا که زده vs 21012 منظورش چی بوده؟یعنی تحت محیط ویژوال استدیو از Qt استفاده میکنه؟

    بازم تشکر از دوست خوبم eshpilen برای توضیحات خوبشون
    اره سایتو درست رفتی
    یعنی از کامپایلر ویژوال استودیو برای ساختن برنامه استفاده می کنه اگر این ورژنو گرفتی باید visual studio 2012 هم روی سیسستمت نصب باشه

صفحه 2 از 2 اولاول 12

برچسب های این تاپیک

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

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