วันอาทิตย์ที่ 6 พฤษภาคม พ.ศ. 2555

เพิ่มเติม การนำ Class C++ มาใช้กับ Sketchup Ruby C Extension

ตามบทความที่แล้ว เราได้ Interface กับ ruby ของ Sketckup ได้แล้ว แต่ C
เป็นภาษาที่เก่ามาก Source  Code ต่างๆที่จะนำมาใช้จะพัฒนาแบบ OOP หรือ Class Object เป็นส่วนมาก
จะนำมาใช้ได้อย่างไร โดยเฉพาะ พวก Class สำเร็จรูปใน Windows
วิธีการ ให้ทำการ Add New File เลือกเป็น CPP เช่น defFunciton.cpp
ทดลองย้าย f_hello จาก sxhelloworld.C มาที่ defFunction.CPP
ต้องใส่

ใส่
include "ruby.h" ที่หัวไฟล์
extern "C" เข้าหน้า โปรแกรม f_hello เพื่อให้ C++ รู้ว่าจะ ต่อกับโปรแกรม ไฟล์ที่เป็น native  C
จะทำงานได้ ตัวอย่างเป็นการนำ String Class มาใช้ และส่งผลกลับที่ THANAPHAN.hi ใน Ruby Sketchup

source ของ defFunction.cpp



#include <ruby.h>
#include "astring.h"

 extern "C"  VALUE f_Hello( VALUE self )
{
char atxt[80]="OK 2";
 AString oktest("test1");
  oktest+=atxt;
 
    return rb_str_new2( (const char*)oktest);
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น