Tôi đang cố gắng chuyển một chuỗi từ C# đến một DLL C. Từ những gì tôi đã đọc .NET nên làm việc chuyển đổi từ chuỗi để char * cho tôi, tuy nhiên tôi nhận được "lỗi CS1503: Argument '1': không thể chuyển đổi từ 'chuỗi' thành 'char *'" Ai đó có thể tư vấn cho tôi về nơi tôi đã đi sai? Cảm ơn.Vượt qua chuỗi từ C# đến C DLL
C# code
[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);
}
Tại sao tuyên bố StreamReceiveInitialise là không an toàn? Bây giờ bạn vẫn cần phải vượt qua một char * thay vì một chuỗi. – diggingforfire
Tôi hiện đã xóa không an toàn và đang sử dụng như được hiển thị trong câu trả lời 1. – integra753