C++ ile ARX programlama
master *.cpp dosyası
internet - 15.09.2005 08:20
internet - 15.09.2005 08:20
/************************************************************************/
/*daha önceki derste Visual C'de nasıl ayarlar yapacağınız anlatılmıştır... burada da herzaman kullanabileceğiniz ve kendi fonksiyonlarınızı yazacağınız master.cpp dosyasının kodunu veriyorum... kolay gelsin.. bir sorun yaşarsanız beni aramaktan kaçınmayın*/
#include
#include
#include
#include
#include
#include
#include
#include
/************************************************************************/
static int myfunc (void) ; // kendi fonksiyonumuzun deklerasyonu
struct func_entry {
char *func_name; // Autocad kullanılacak komutun adı
int (*func)(void); // func hiçbir parametre almıyor int' dönüyor
};
/*
Burada kendi fonksiyonlarınızı tanımlıyorsunuz
*/
static struct func_entry func_table[] = {
{"C:myfunc", myfunc}, // Autocad kullanıcısı komut olarak "myfunc" yazacak
};
const int iNumCommands = sizeof (func_table)/sizeof(func_table[0]) ;
static void dofun (void) ;
static int funcload (void) ;
/***********************************************************************/
//Programımız buradan başlıyor Autocad buradan iletişim kuruyor..
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* ptr)
{
switch(msg) {
case AcRx::kInitAppMsg:
acrxUnlockApplication(ptr);
break;
case AcRx::kInvkSubrMsg:
dofun();
break;
case AcRx::kLoadDwgMsg:
funcload();
break ;
case AcRx::kSaveMsg:
case AcRx::kEndMsg:
case AcRx::kQuitMsg:
break ;
default :
break ;
}
return AcRx::kRetOK;
}
static int funcload (void)
{
int i;
for (i = 0; i < iNumCommands ; i++) {
if (!ads_defun (func_table.func_name, (short)i)) {
ads_printf ("
***funcload failure***
") ;
break ;
}
}
ads_printf ("TabiCAD for R14 registered %d commands
",iNumCommands) ;
return (RTNORM) ;
}
static void dofun (void)
{
int iVal = ads_getfuncode();
if ((iVal < 0) |||| (iVal >= iNumCommands)) {
ads_printf ("Hiçbir fonksiyon kodu alinamadi: %d .",iVal);
return ;
}
(*func_table[iVal].func)();
}
/************************************************************************/
static int myfunc (void)
{
/*burada autocad'da iş yapacak kendi fonksiyonlarınızı yazıyorsunuz... Bundan sonraki derslerimde sizlere iş yapan fonksiyonlar vereceğim*/
return 0;
}
/*daha önceki derste Visual C'de nasıl ayarlar yapacağınız anlatılmıştır... burada da herzaman kullanabileceğiniz ve kendi fonksiyonlarınızı yazacağınız master.cpp dosyasının kodunu veriyorum... kolay gelsin.. bir sorun yaşarsanız beni aramaktan kaçınmayın*/
#include
#include
#include
#include
#include
#include
#include
#include
/************************************************************************/
static int myfunc (void) ; // kendi fonksiyonumuzun deklerasyonu
struct func_entry {
char *func_name; // Autocad kullanılacak komutun adı
int (*func)(void); // func hiçbir parametre almıyor int' dönüyor
};
/*
Burada kendi fonksiyonlarınızı tanımlıyorsunuz
*/
static struct func_entry func_table[] = {
{"C:myfunc", myfunc}, // Autocad kullanıcısı komut olarak "myfunc" yazacak
};
const int iNumCommands = sizeof (func_table)/sizeof(func_table[0]) ;
static void dofun (void) ;
static int funcload (void) ;
/***********************************************************************/
//Programımız buradan başlıyor Autocad buradan iletişim kuruyor..
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* ptr)
{
switch(msg) {
case AcRx::kInitAppMsg:
acrxUnlockApplication(ptr);
break;
case AcRx::kInvkSubrMsg:
dofun();
break;
case AcRx::kLoadDwgMsg:
funcload();
break ;
case AcRx::kSaveMsg:
case AcRx::kEndMsg:
case AcRx::kQuitMsg:
break ;
default :
break ;
}
return AcRx::kRetOK;
}
static int funcload (void)
{
int i;
for (i = 0; i < iNumCommands ; i++) {
if (!ads_defun (func_table.func_name, (short)i)) {
ads_printf ("
***funcload failure***
") ;
break ;
}
}
ads_printf ("TabiCAD for R14 registered %d commands
",iNumCommands) ;
return (RTNORM) ;
}
static void dofun (void)
{
int iVal = ads_getfuncode();
if ((iVal < 0) |||| (iVal >= iNumCommands)) {
ads_printf ("Hiçbir fonksiyon kodu alinamadi: %d .",iVal);
return ;
}
(*func_table[iVal].func)();
}
/************************************************************************/
static int myfunc (void)
{
/*burada autocad'da iş yapacak kendi fonksiyonlarınızı yazıyorsunuz... Bundan sonraki derslerimde sizlere iş yapan fonksiyonlar vereceğim*/
return 0;
}
Yazar: internet
İçerik:
Tag: C++ ile ARX programlama master *.cpp dosyası