如何使用kernel.NET(C#)在jupyter笔记本中调用kernel32.dll方法(LoadLibraryEx)

如何使用kernel.NET(C#)在jupyter笔记本中调用kernel32.dll方法(LoadLibraryEx),c#,.net-core,jupyter-notebook,C#,.net Core,Jupyter Notebook,我想用kernel.NET(C#)调用jupyter笔记本中的kernel32.dll方法(LoadLibraryEx)。 我该怎么做 // Kernel32.dll functions [DllImport("kernel32.dll")] private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr reserved, uint flags); 我的代码导致以下错误 第一种方法: #r“C:/Program File

我想用kernel.NET(C#)调用jupyter笔记本中的kernel32.dll方法(LoadLibraryEx)。 我该怎么做

// Kernel32.dll functions
[DllImport("kernel32.dll")]
private static extern IntPtr LoadLibraryEx(string dllToLoad, IntPtr reserved, uint flags);
我的代码导致以下错误

第一种方法:
#r“C:/Program Files/ABBYY SDK/12/FineReader Engine/Bin64/FREngine.dll”

错误为“(1,1):错误CS0009:无法打开元数据文件-PE映像不包含托管元数据

第二种方法:
[DllImport(@“C:\Program Files\ABBYY SDK\12\FineReader Engine\Bin64\FREngine.dll”)]

:错误CS1519:CS1519:类、结构或接口成员声明中的“无效令牌”


非常感谢

我很好奇。为什么要调用LoadLibraryEx。如果要加载库,通常需要调用该库中的方法。唯一的方法是使用p/Invoke(使用与上面所示类似的声明)。然后调用带注释的方法。您不应该只是P/调用FREngine.dll吗?我用Assembly.LoadFile()尝试了这一点,但只得到了下一条错误消息:未处理的异常错误IL格式。at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath()…不,我想说的是,如果你想在FREngine.dll中调用一个函数,你需要为你想调用的每个函数编写一个P/Invoke规范(带有DllImport属性等)。你不能只将一个非托管dll加载到C程序中