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 ...