C 呼叫C 用類封裝的coin3d 3維顯示程式

2021-05-24 13:57:26 字數 1192 閱讀 5195

1、首先用vs2008新建乙個win32-》win32 project->dll工程,需要設定好coin3d 編譯的環境,然後新增乙個原始檔,**如下

ifdef testdll_exports

#define testdll_api __declspec(dllexport)

#else

#define testdll_api __declspec(dllimport)

#endif

#include

#include

#include

#include

#include

#include

#include

class testdll_api ctestdll 

public:

void  passhandle(hwnd hwnd);

void  ctestdll::passhandle(hwnd hwnd)

sowin::init("");

sowinexaminerviewer* viewer = new sowinexaminerviewer(hwnd);

viewer->setdecoration(false);

viewer->setsize(sbvec2s(736,248));

soseparator *root = new soseparator; 

root->addchild(new socone);          

viewer->setscenegraph(root);         

編譯後九個得到 dll

2、新建乙個form工程,然後再form上新增乙個 picturebox,在form1.designer.cs中新增

[dllimport("dlltest2008.dll", entrypoint = "?passhandle@ctestdll@@qaexpauhwnd__@@@z", charset = charset.auto)]

private static extern void passhandle(intptr hwnd);

public void disp()

intptr ptr = picturebox1.handle;

passhandle(ptr);

並在form1.cs中呼叫disp函式,執行就可以在form中顯示乙個3維的圓錐

C 用類封裝 pthread

乙個專案中需要用到pthread,發現把它封裝到類中使用起來更加的方便。這裡儲存了例項 以備以後使用。標頭檔案中定義了threadbase類,它包含了執行緒基本的一些介面,start join 和quit run 為介面函式,使派生類可以實現自己的工作函式。thread base.h ifndef ...

C 多個類的DLL封裝及呼叫

專案中需要把一些共通的功能,抽出來做乙個dll來呼叫。因為是以類作為單位的,資料確實少,主要參考了上面那篇博文。需要補充的一點是 程式能夠正常呼叫,但是偶爾會發生accessviolationexception,查到的結果是,函式宣告時未新增 stdcall,導致預設呼叫了 cdeccall。具體解...

C 多個類的DLL封裝及呼叫

網上大多是將函式封裝成dll的教程,類的封裝也是基本相似的。在vs2010中新建乙個win32 dll工程。如我建立的工程名為facedll 新增facedll.h的標頭檔案 裡面定義dll的介面,呼叫時會用到 pragma once ifdef facelibdll define faceapi ...