Estoy tratando de pasar una cadena de C# a una DLL de C. Por lo que he leído, .NET debe hacer la conversión de cadena a char * para mí, sin embargo, aparece el "error CS1503: argumento '1': no se puede convertir de 'cadena' a 'char *'" ¿Alguien me puede avisar de dónde estoy? han salido mal? Gracias.Pase cadena de C# a C DLL
código C#
[DllImport("Source.dll", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl), SuppressUnmanagedCodeSecurity]
public static unsafe extern bool StreamReceiveInitialise(char* filepath);
const string test = "test";
// This method that will be called when the thread is started
public void Stream()
{
if (StreamReceiveInitialise(test))
{
}
}
C DLL
extern "C"
{
__declspec(dllexport) bool __cdecl StreamReceiveInitialise(char* filepath);
}
¿Por qué declarar a StreamReceiveInitialise como inseguro? Ahora todavía necesita pasar un char * en lugar de una cadena. – diggingforfire
Ahora he eliminado inseguro y estoy usando como se muestra en la respuesta 1. – integra753