امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C
نویسنده پیام
salehjg آفلاین
مدیر بخش
*****

ارسال‌ها: 1,281
موضوع‌ها: 133
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 9560
( 8557 تشکر در 2603 ارسال )
ارسال: #1
ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C
سلام
شاید یکم سخت بتونم منظورمو منتقل کنم

2 تاپروژه فرض کنید
یکیش در ++C که قراره بصورت فایل lib.* کامپایل بشه
پروژه دوم هم قراره از همون فایل lib استفاده کنه.


داخل پروژه ++C یه کلاس تعریف شده به فرم زیر
کد:
class MemBufferObject
{
   private:

       char *m_pData;
       int m_size;
       int m_offset;

   public:

       inline MemBufferObject(char *pSource, int size) : m_pData(pSource), m_size(size), m_offset(0) {}

       inline int Read(char *pBuffer, int size)
       {
           // Don't worry about reading partial data here...
           if (m_offset + size <= m_size)
           {
               ::memcpy(pBuffer, &m_pData[m_offset], size);
               m_offset += size;
               return size;
           }

           return -1;
       }
};

کد:
SQInteger BufferRead(SQUserPointer pMemObject, SQUserPointer pDest, SQInteger size)
{
   // Assume that our source is a MemBufferObject
   MemBufferObject *pBuffer = reinterpret_cast<MemBufferObject *>(pMemObject);

   return pBuffer->Read(reinterpret_cast<char *>(pDest), size);
}


و یدونه تابع داریم که در ++C نوشته شده و قراره از C فراخوانی بشه:

کد:
SQRESULT LoadScript(HSQUIRRELVM vm, MemBufferObject *pSource)
{
   return sq_readclosure(vm, BufferRead, (SQUserPointer)(pSource));
}
 
اگر دقت کنید آرگومان دوم تابع از جنس کلاس MemBufferObject هستش
چون این تابع قراره از C فراخوانی بشه، سوالم اینه که چطوری در زبون C (نه ++C) ، از کلاسی که در ++C نوشته شده، یه متغییر درست کنم و به کمک class constructor اون متغییر رو با داده خودم مقدار دهی کنم؟
چند تا سورس کد بررسی کردم، توی هدر فایلی که به خورد برنامه C داده بودن، کلاس رو بصورت struct تعریف کرده بودن
ولی مشکل اینجاست که اگه بصورت struct تعریف بشه، از داخل برنامه C چطوری باید به تابع class constructor ای که در ++C پیاده شده، (از درون برنامه C) دسترسی پیدا کنم؟
۰۷-اردیبهشت-۱۳۹۵, ۱۹:۰۹:۲۹
وب سایت ارسال‌ها
پاسخ


پیام‌های داخل این موضوع
ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C - توسط salehjg - ۰۷-اردیبهشت-۱۳۹۵, ۱۹:۰۹:۲۹
RE: ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C - توسط salehjg - ۰۷-اردیبهشت-۱۳۹۵, ۲۳:۵۵:۱۱,
RE: ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C - توسط salehjg - ۰۸-اردیبهشت-۱۳۹۵, ۰۰:۵۳:۴۲,
RE: ارتباط دو زبان c و ++C و ایجاد آبجکت از کلاس در C - توسط salehjg - ۲۴-اردیبهشت-۱۳۹۵, ۱۶:۰۸:۱۷,

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش مبتدي تا پيشرفته زبان C++ - C dreamvbfox 46 136,868 ۱۲-آذر-۱۳۹۹, ۱۷:۴۶:۱۴
آخرین ارسال: mona_alizade
  [پروژه] الگوریتم زمانبندی RR به زبان C همراه سورس کد Ghoghnus 2 1,482 ۰۳-بهمن-۱۳۹۸, ۱۴:۲۷:۵۷
آخرین ارسال: Ghoghnus
Question درخواست برنامه ای به زبان ++C saeidengman 11 15,555 ۰۵-تير-۱۳۹۶, ۱۱:۴۷:۰۱
آخرین ارسال: alivolley
  کتاب فارسی اموزش زبان C lord_viper 12 33,520 ۱۹-اسفند-۱۳۹۳, ۰۰:۰۲:۰۵
آخرین ارسال: vigraz
  [سوال] ارتباط با دیوایس با استفاده از پورت سریال elec60 0 2,295 ۲۲-خرداد-۱۳۹۳, ۱۴:۰۳:۰۰
آخرین ارسال: elec60
Question [سوال] تبدیل نوع متغیر (float به unsigned char) در زبان سی PRO 3 7,754 ۰۹-مرداد-۱۳۹۲, ۲۰:۱۶:۰۰
آخرین ارسال: PRO
  مقدار دهی textbox در کلاس c# aleas 0 2,627 ۲۸-اسفند-۱۳۹۱, ۱۸:۰۲:۵۱
آخرین ارسال: aleas
  برنامه شمارنده خاص به زبان ++C saidal 1 4,331 ۱۷-اسفند-۱۳۹۱, ۱۷:۲۰:۳۸
آخرین ارسال: Ghoghnus
  کلاس شی و ارایه پویا fgcosoft 0 2,218 ۰۷-دى-۱۳۹۱, ۲۱:۵۶:۴۲
آخرین ارسال: fgcosoft
Question کلاس DateTime در C++ javaweb 0 2,457 ۱۷-آذر-۱۳۹۱, ۱۱:۱۳:۴۵
آخرین ارسال: javaweb

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS