我试图使用Visual Stdio 2008 pro和c#with .NET 2.0在我的汽车中开发适用于Windows CE 5.0设备的智能设备程序。我想使用AddFontResourceEx添加字体,但我无法使其工作。这是代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private const uint FR_PRIVATE=0x10;
[DllImport("GDI32.dll",EntryPoint="AddFontResourceEx")]
static extern int AddFontResourceEx(string lpszFilename, uint fl, IntPtr pdv);
private void button1_Click(object sender, EventArgs e)
{
AddFontResourceEx(".\\ELEPHNT.TTF", FR_PRIVATE, IntPtr.Zero);
label1.ForeColor = Color.FromArgb(155, 25, 34);
label1.Font = new Font("ELEPHNT.TTF", 18, FontStyle.Regular);
label1.Text = "Hello world!";
}
}
它成功构建并且我可以运行程序,但字体不会改变。我将字体文件添加到程序所在的同一目录中。你能告诉我出了什么问题吗?
答案 0 :(得分:0)
您无法在C#代码中使用C ++声明,您需要使用pinvoke和兼容的数据类型: http://www.pinvoke.net/search.aspx?search=addfontresource&namespace=[All] 在Windows CE中没有相对路径,因此您必须使用字体文件的完整路径,从。
开始。