Problema al llamar a DLL de C++ en Windows CE

22/04/2009 - 09:53 por jman0 | Informe spam
Tengo una DLL desarrollada en C++ con Embedded Visual C++ 4.0. El caso
es que tengo una función que hasta el momento devolvía un valor de
tipo bool y me funcionaba perfectamente dentro de un proyecto en C#.

Pues bien, ahora necesito que dicha función devuelva un valor de tipo
DWORD. En C++, la cabecera de la función es:

extern "C" LIB_API DWORD StartRASConnection(unsigned short *Name,
unsigned short *UserName, unsigned short *Password)

donde LIP_API se declara como

#ifdef MIPLIB_EXPORTS
#define MIPLIB_API __declspec(dllexport)
#else
#define MIPLIB_API __declspec(dllimport)
#endif

En C#, la función está declarada como

[DllImport("miplib.dll")]
public static extern long StartRASConnection(string nombreConn, string
usuario, string pass);

El caso es que al llamar a StartRASConnection se produce una
excepción, cuya descripción es simplemente "NotSupportedException"

Cuando la función C++ devolvía un bool, todo iba bien, y no había
excepción, y me estoy volviendo loco.

¿Cuál puede ser el problema?

Gracias.
 

Leer las respuestas

#1 RFOG
22/04/2009 - 12:22 | Informe spam
Hola.

Hasta donde yo sé, un DWORD es un UInt en C#.



"jman0" wrote in message
news:
Tengo una DLL desarrollada en C++ con Embedded Visual C++ 4.0. El caso
es que tengo una función que hasta el momento devolvía un valor de
tipo bool y me funcionaba perfectamente dentro de un proyecto en C#.

Pues bien, ahora necesito que dicha función devuelva un valor de tipo
DWORD. En C++, la cabecera de la función es:

extern "C" LIB_API DWORD StartRASConnection(unsigned short *Name,
unsigned short *UserName, unsigned short *Password)

donde LIP_API se declara como

#ifdef MIPLIB_EXPORTS
#define MIPLIB_API __declspec(dllexport)
#else
#define MIPLIB_API __declspec(dllimport)
#endif

En C#, la función está declarada como

[DllImport("miplib.dll")]
public static extern long StartRASConnection(string nombreConn, string
usuario, string pass);

El caso es que al llamar a StartRASConnection se produce una
excepción, cuya descripción es simplemente "NotSupportedException"

Cuando la función C++ devolvía un bool, todo iba bien, y no había
excepción, y me estoy volviendo loco.

¿Cuál puede ser el problema?

Gracias.



Microsoft Visual C++ MVP
==Mi blog sobre programación: http://geeks.ms/blogs/rfog
Momentos Leves: http://momentosleves.blogspot.com/
Cosas mías: http://rfog.blogsome.com/
Libros, ciencia ficción y desarrollo
Por lo que uno tira, otro suspira.

Preguntas similares