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从未被解雇。 –