4
A
回答
1
我想通了,與一些幫助的帖子一些幫助在CodeProject
思想在這裏張貼這可能是爲別人有用的
#include "stdafx.h"
#include "windows.h"
using namespace System;
using namespace System::Runtime::InteropServices;
class Camera
{
public:
Camera()
{
}
~Camera(){}
void (*test)(void);
void OnNewCameraData();
void StartDataAcquisition();
};
void Camera::StartDataAcquisition()
{
int i;
while(i<10)
{
test();
i++;
Sleep(1000);
}
}
delegate void FunctionToCallDelegate();
ref class CameraAdapter
{
private:
Camera *_camera;
FunctionToCallDelegate ^_Function;
public:
CameraAdapter(FunctionToCallDelegate ^handler)
{
_Function = handler;
}
void Init()
{
_camera = new Camera();
pin_ptr<FunctionToCallDelegate^> tmp = &_Function;
_camera->test = (void (__cdecl *)(void))(Marshal::GetFunctionPointerForDelegate(_Function).ToPointer());
_camera->StartDataAcquisition();
}
~CameraAdapter()
{
delete _camera;
_camera = 0;
}
void OnNewCameraData()
{
Console::WriteLine("Received Frame \n");
}
};
int main(array<System::String ^> ^args)
{
FunctionToCallDelegate ^dsi;
dsi += gcnew FunctionToCallDelegate(gcnew CameraAdapter(dsi), &CameraAdapter::OnNewCameraData);
CameraAdapter ^camera = gcnew CameraAdapter(dsi);
camera->Init();
Console::ReadKey();
return 0;
}
相關問題
- 1. 從非託管函數中觸發事件
- 2. 從非託管的DLL調用函數
- 3. 從託管代碼調用非託管DLL函數時出錯
- 4. 從非託管類對象調用託管類函數
- 5. 在Winforms主機中託管DataGridView時事件未觸發
- 6. 如何掛鉤託管函數內的非託管函數?
- 7. 觸發對委託事件
- 8. 非託管函數中的託管類參數?
- 9. 如何通過託管代碼將非託管函數指針從dll發送到其他dll中的另一個非託管函數?
- 10. 捕捉從本地C++ COM組件中的託管DLL觸發的事件
- 11. 委託事件內部的函數沒有觸發
- 12. .live函數中觸發href事件
- 13. 將託管事件源連接到非託管事件接收器
- 14. 從非託管調用託管代碼時發生StackoverflowException
- 15. 將非SafeGuard從非託管狀態管理到託管狀態
- 16. 將託管函數指針傳遞爲非託管回調
- 17. jquery函數無法從webgrid中的新數據觸發事件
- 18. F#使用非託管dll函數
- 19. 從VTable的struct中調用非託管函數
- 20. 從C#應用程序中的非託管DLL導入函數
- 21. 如何從C#代碼調用非託管dll中的函數?
- 22. 託管類型的成員函數不能編譯爲非託管函數
- 23. 有沒有辦法在C#中掛接託管函數,就像我在C++中的非託管函數一樣?
- 24. 非託管dll函數字節*參數在C#中返回
- 25. jQuery的觸發事件委託
- 26. 無法觸發事件委託
- 27. 託管和非託管堆
- 28. 託管vs非託管
- 29. DirectX託管或非託管?
- 30. 在非託管C++中登錄Windows事件日誌
傳遞一個函數指針,當本地代碼調用,運行一個引發事件的方法:http://stackoverflow.com/a/2168265/17034 –
具體來說,我需要從C++類的成員函數中引發這一點。 – coolshashi
單詞「fire」和「C++ class」並不代表同一句話中的任何內容。 Bjarne Stroustrup從未被解僱。 –