2011-11-30 44 views
0

我有跟隨宏與我。使用此宏時出現錯誤。如果您發現它沒有用於schema::schema()的末端支架。這是我的宏頭文件。如何在我的cpp程序中使用這個宏?

#ifdef _WINDOWS_SOURCE 
#define ExportedByVX0TOOLS __declspec(dllexport) 
#else 
#define ExportedByVX0TOOLS 
#endif 

#include <stdio.h> 
#include <string.h> 
// 
#if defined(_WINDOWS_SOURCE) 
#include <errno.h> 
#include <io.h> 
#endif 
#if defined(_IRIX_SOURCE) || defined(_SUNOS_SOURCE) || defined(_HPUX_SOURCE) || defined(_AIX) 
#include <stdlib.h> 
#include <sys/stat.h> 
#include <unistd.h> 
#endif 

#define LoadSchemaDico(schema)\ 
     class ExportedByVX0TOOLS schema { public: schema();};\ 
     extern "C" ExportedByVX0TOOLS int fctCreate##schema();\ 
     int fctCreate##schema(){ int ret=1 ; return ret; }\ 
     schema::schema(){ 
+1

LoadSchemaDico(name) //constructor code } 

這將擴大到? –

+1

我想象一下,有些恐懼! – Johnsyweb

回答

1

您可以使用它像這樣:你是如何使用宏截至目前

class ExportedByVX0TOOLS name 
{ 
    public: 
     name(); 
}; 
extern "C" ExportedByVX0TOOLS int fctCreatename(); 
int fctCreatename() 
{ 
    int ret=1 ; 
    return ret; 
} 
name::name() 
{ 
//constructor code 
} 
+0

這個作品..謝謝很多.. – user1061293

+0

如果我想創建這個擴展架構的對象爲C++類,我該怎麼做? – user1061293

+0

@ user1061293你可以做「name obj;」或「name * obj = new name;」,用您的班級名稱替換姓名。 –

相關問題