我如何在C#GUI中调用我的C 程序

How can I call my c++ program in c# gui?

本文关键字:调用 我的 程序 C#GUI      更新时间:2023-10-16

我可以在C#GUI中调用此C 代码吗?如果是这样,我该怎么办?
我的C 功能:

int getSize(const char *file) {
    HANDLE hFile;
    LPCWSTR inFile = (LPCWSTR)file;
    hFile = CreateFile(
        inFile,
        GENERIC_READ,
        FILE_SHARE_READ,
        0,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL
    );
    DWORD dwFileSize;
    dwFileSize = GetFileSize(hFile, NULL);
    CloseHandle(hFile);
    return dwFileSize;
}

我想在C#中使用它:

int fileSize = getSize(DecryptionOpenFile.FileName);

您只需要将DLL导入C#GUI项目并在其周围制作包装。

这是一个样本:

public static class IncDll
{
    [DllImport("myLibrary.dll")]
    public static extern void MethodName(ParameterList);
}

然后在您的代码中,您只需要这样称呼:

IncDll.MethodName(params);

您还可以有两个项目,一个在C /CLI中,另一个在C#中。

C /CLI正在包装本机C API。

然后将C /CLI库的引用添加到C#中,您将能够通过包装器使用本机库。