У меня есть CLR C++ dll, которая нарушила статическую библиотеку C++. У меня есть следующий класс:вызов функции C++ с char * с C#
#pragma once
#include <windows.h>
#include <sddl.h>
#include <LibEx.h>
using namespace System;
#using <mscorlib.dll>
namespace LIB_WrapperNamespace {
public ref class LIB_WrapperClass
{
public:
BOOL WINAPI T_LibEx_ConsoleConnect(IN DWORD num1, IN LPWSTR Name)
{
return LibEx_ConsoleConnect(num1,Name);
}
};
}
в C#, я добавить ссылку на библиотеку
LIB_WrapperNamespace.LIB_WrapperClass myLib = new LIB_WrapperNamespace.LIB_WrapperClass();
Теперь, как вызвать эту функцию, как отправить строку на символ *? из C#:
string myName = "NAME";
myLib.T_LibEx_ConsoleConnect(1,**myName**);
изменения в характере array – Saksham
Вы можете просто передать его как 'string' - Marshaller обработает превращение его в char * для вас. –
@ Сакшам, как это поможет? Он определяет это в собственном коде, если он использовал собственный массив, он все равно будет отображаться как значение указателя – JaredPar