lanzar evento desde dll/c++ a clase c#

02/09/2004 - 18:20 por Eduardo Figueres | Informe spam
Hola estoy trabajando en una dll c++ y necesito lanzar un evento desde la
dll que sea capturado por un manejador escrito en c#.

¿Alguien sabe si es esto posible y qué debo tener en cuenta para ello?

Gracias y un saludo,

Preguntas similare

Leer las respuestas

#1 Angel J. Hernández M
02/09/2004 - 19:34 | Informe spam
"Eduardo Figueres" escribió en el mensaje
news:
Hola estoy trabajando en una dll c++ y necesito lanzar un evento desde la
dll que sea capturado por un manejador escrito en c#.

¿Alguien sabe si es esto posible y qué debo tener en cuenta para ello?

Gracias y un saludo,



Respuesta Responder a este mensaje
#2 Angel J. Hernández M
02/09/2004 - 20:12 | Informe spam
Hola, cómo estás? A continuación te muestro un ejemplo sencillo de como
sería... Saludos

Código C++
**********

/* Archivo de cabecera */

#pragma once

using namespace System;

namespace ConsoleApplication1 {
public __gc class ClassCpp {
private:
int m_contador;

public:
__delegate void MiDelegado(System::Object* sender, System::DateTime
time);
__event MiDelegado* AlDispararEvento;
ClassCpp();
void IncrementarMIembro();
};
}

/* Implementación de la clase (CPP) */

#include "stdafx.h"

#include "ClassSample.h"


void ConsoleApplication1::ClassCpp::IncrementarMIembro() {
m_contador++;
if (m_contador == 9 && AlDispararEvento != 0) {
AlDispararEvento(this, System::DateTime::Now);
m_contador = 0;
}
}


ConsoleApplication1::ClassCpp::ClassCpp() {}


/* Código C# */

using System;
using ConsoleApplication1;

namespace ConsoleApplication1 {
class ClassCSharp{
[STAThread]
static void Main(string[] args) {
ClassCpp x = new ClassCpp();
x.AlDispararEvento +=new
ConsoleApplication1.ClassCpp.MiDelegado(x_AlDispararEvento);

do {
x.IncrementarMIembro();
} while( Console.ReadLine().Length.Equals(0));

for(int y = 0; y < 10; y++)
x.IncrementarMIembro();
}

private static void x_AlDispararEvento(object sender, DateTime time) {
Console.WriteLine("Objeto que envía: "+sender.ToString()+ "- Hora:
"+time.ToString());
Console.ReadLine();

}
}
}


Espero te pueda servir...


Angel J. Hernández M
MCSD








"Angel J. Hernández M" escribió en el mensaje
news:%

"Eduardo Figueres" escribió en el mensaje
news:
> Hola estoy trabajando en una dll c++ y necesito lanzar un evento desde


la
> dll que sea capturado por un manejador escrito en c#.
>
> ¿Alguien sabe si es esto posible y qué debo tener en cuenta para ello?
>
> Gracias y un saludo,
>
>
>


Respuesta Responder a este mensaje
#3 Octavio Hernandez
02/09/2004 - 23:27 | Informe spam
Hola,

Si se tratara de una librería basada en MFC, ATL, etc. (código no manejado),
este artículo indica cómo llamar desde elllos a métodos .NET.

http://www.codeproject.com/dotnet/nettocom.asp

Slds,

Octavio

"Eduardo Figueres" escribió en el mensaje
news:
Hola estoy trabajando en una dll c++ y necesito lanzar un evento desde la
dll que sea capturado por un manejador escrito en c#.

¿Alguien sabe si es esto posible y qué debo tener en cuenta para ello?

Gracias y un saludo,

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida