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

نام تاپیک: بازگشت دادن محتویات یک شی از نوع QImage از یک dll

  1. #1

    Question بازگشت دادن محتویات یک شی از نوع QImage از یک dll

    با عرض سلام خدمت برنامه نویسان Qt
    راستش من هنوز زیاد با Qt آشنا نیستم (البته فعلاً! ) و به یک مشکلی برخورد کرده ام که واقعاً اعصابم رو به هم ریخته است.

    مشکل من این است:
    من در محیط Qt یک dll را ساخته ام و قصد دارم که از این dll در محیط Delphi استفاده کنم. همه چیز به ظاهر درست به نظر می رسد و در مثال های ساده همه چیز به خوبی کار می کند. در واقع کار این dll این است که با استفاده از یک شی از کلاس QImage کارهایی را بر روی یک تصویر انجام می دهد و در آخر هم بایتهای آن تصویر را برگشت می دهد.

    کد های سمت Qt به شرح زیر است:

    فایل test.h:
    #ifndef TEST_H
    #define TEST_H

    #include "test_global.h"


    extern "C"{
    TESTSHARED_EXPORT const uchar* testFunc();
    }


    #endif // TEST_H


    فایل test.cpp:
    #include "test.h"
    #include <QtGui>

    QImage image;

    const uchar* testFunc(){
    image.load("c:\\1.png");
    return image.constBits(); // هیچ چیزی را بر نمی گرداند
    // return (uchar*)"Hello From Qt."; // به درستی کار میکند
    }


    در محیط دلفی هم از کد زیر برای تست dll ساخته شده در Qt استفاده کرده ام. البته کدهای سمت دلفی مشکلی ندارد و مشکل از طرف کد های سمت Qt است:
    function testFunc(): PByteArray; external 'test.dll';
    // ...

    procedure TForm3.Button1Click(Sender: TObject);
    var
    bStream: TBytesStream;
    P: PByteArray;
    Size: Cardinal;
    begin
    P := testFunc;
    Size := Length(PAnsiChar(P)); // AnsiChar = 1 Byte
    bStream := TBytesStream.Create();
    try
    bStream.Write(P[0], Size); // Works Fine (^_^)
    bStream.Position := 0;
    bStream.SaveToFile('c:\scr.txt');
    finally
    bStream.Free;
    end;
    end;


    با تشکر از پاسخ های شما دوستان عزیز...
    آخرین ویرایش به وسیله BORHAN TEC : پنج شنبه 16 شهریور 1391 در 16:33 عصر

  2. #2

    نقل قول: بازگشت دادن محتویات یک شی از نوع QImage از یک dll

    متد load کلاس QImage یک مقدار bool برمیگیداند. مقدار برگشتی را بررسی کنید false نباشد. همچنین از وجود فایل صویر اطمینان حال کنید.

  3. #3

    نقل قول: بازگشت دادن محتویات یک شی از نوع QImage از یک dll

    با سلام خدمت دوست عزیزم
    با تشکر از توضیحات شما ولی حل این مسئله به تغییرات بیشتری نیاز دارد که خوشبختانه چند دقیقه پیش توانستم این مشکل را حل کنم و توضیحاتی در این خصوص نیز در تاپیک زیر قرار داده ام که به خوبی نحوه کار را نشان می دهد:
    https://barnamenevis.org/showthread.php?359799

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

  1. قرار دادن محتویات یک فیلد در یک متغیر
    نوشته شده توسط delafarin در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 3
    آخرین پست: دوشنبه 27 تیر 1390, 14:42 عصر
  2. قرار دادن محتویات Textbox در ارایه
    نوشته شده توسط Rasilinkof در بخش C#‎‎
    پاسخ: 4
    آخرین پست: پنج شنبه 30 مهر 1388, 16:56 عصر
  3. سوال: نشان دادن محتویات یک فایل بطور تدریجی
    نوشته شده توسط khadem1386 در بخش Classic ASP
    پاسخ: 1
    آخرین پست: چهارشنبه 29 مهر 1388, 17:39 عصر
  4. سوال: نشان دادن محتویات PictureBox در برنامه های ویندوز
    نوشته شده توسط antisocial در بخش C#‎‎
    پاسخ: 1
    آخرین پست: جمعه 04 اردیبهشت 1388, 00:00 صبح
  5. تغییر دادن محتویات یک ستون در dataGrid
    نوشته شده توسط ندا2611 در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 05 فروردین 1388, 18:45 عصر

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

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

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