C# 无法安装字体

C# 无法安装字体,c#,windows,visual-studio-2012,fonts,C#,Windows,Visual Studio 2012,Fonts,当我尝试在VS2012中运行以下代码段时,它会按预期安装字体。但是,当我从Windows资源管理器启动应用程序时,它返回以下错误:“无法安装所需字体:系统找不到指定的文件” lucon.ttf位于正确的文件夹中。请有人解释一下,并在从Windows资源管理器启动console应用程序时帮助我运行它吗?您的错误处理已中断。Windows通常不会在功能未失败时重置上一个错误。此外,AddFontResource()的特殊之处在于它根本没有设置最后一个错误,请查看MSDN文章。GDI函数的其他常见行为

当我尝试在VS2012中运行以下代码段时,它会按预期安装字体。但是,当我从Windows资源管理器启动应用程序时,它返回以下错误:“无法安装所需字体:系统找不到指定的文件”


lucon.ttf位于正确的文件夹中。请有人解释一下,并在从Windows资源管理器启动console应用程序时帮助我运行它吗?

您的错误处理已中断。Windows通常不会在功能未失败时重置上一个错误。此外,AddFontResource()的特殊之处在于它根本没有设置最后一个错误,请查看MSDN文章。GDI函数的其他常见行为。所以你必须这样做:

    int result = AddFontResource(spath);
    if (result == 0) {
        Console.WriteLine("Unable to install needed font");
        Console.ReadKey();
    }
最好修复pinvoke声明:

   [DllImport("gdi32.dll", CharSet = CharSet.Auto)]
   public static extern int AddFontResource(string lpFileName);
   [DllImport("gdi32.dll", CharSet = CharSet.Auto)]
   public static extern int AddFontResource(string lpFileName);