相关疑难解决方法(0)

Marshal.AllocHGlobal VS Marshal.AllocCoTaskMem,Marshal.SizeOf VS sizeof()

我有以下结构:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct WAVEHDR
{
    internal IntPtr lpData;   // pointer to locked data buffer
    internal uint dwBufferLength; // length of data buffer
    internal uint dwBytesRecorded; // used for input only
    internal IntPtr dwUser;   // for client's use
    internal uint dwFlags;   // assorted flags (see defines)
    internal uint dwLoops;   // loop control counter
    internal IntPtr lpNext;  // reserved for driver
    internal IntPtr reserved;  // reserved for driver
}
Run Code Online (Sandbox Code Playgroud)

我需要分配非托管内存来存储上面结构的实例.指向此结构的指针将传递给waveOut win32 api函数(waveOutPrepareHeader,waveOutWrite,waveOutUnprepareHeader).

  1. 我应该使用Marshal.AllocHGlobal()Marshal.AllocCoTaskMem()?有什么不同?
  2. 我应该通过 …

.net c# winapi memory-management unmanaged

23
推荐指数
1
解决办法
1万
查看次数

在.net应用程序中显示条形码字体

我在C#.Net应用程序的一个水晶报告中添加了一个条形码字体,它在开发中运行良好并显示结果.但是当我创建安装文件并将其安装在另一台PC上时,条形码字体显示为英文字母的简单字体,尽管我已经安装了条形码字体.

那么在安装我的应用程序后,请你帮我在exe上显示条码字体?

c# fonts barcode setup-deployment

5
推荐指数
1
解决办法
1766
查看次数

C#中的嵌入式资源字体无法正常工作

我在资源中嵌入了一个.ttf字体文件(特别是“ Amatic Bold”),并在下面使用此代码获取字体。我在这篇文章中尝试了以下代码:如何在C#应用程序中嵌入字体?(使用Visual Studio 2005)

这是我的实现:

    static public Font GetCustomFont (byte[] fontData, float size, FontStyle style)
    {
        if (_fontCollection == null) _fontCollection = new PrivateFontCollection();
        IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length);
        System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
        _fontCollection.AddMemoryFont(fontPtr, fontData.Length);
        System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
        return new Font(_fontCollection.Families[0], size, style);
    }
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

Font font = GetCustomFont(Properties.MainResources.Amatic_Bold, 25, System.Drawing.FontStyle.Bold);     
Run Code Online (Sandbox Code Playgroud)

字体应如下所示: 在此处输入图片说明

问题是字体正在加载,但使用时无法正确显示。它看起来像“ Arial”或其他标准字体,而不是应有的字体。如果我将字体安装在Windows中,则可以正常工作(我想很明显...)

我搜索了现有的答案,但找不到确切的问题...

任何帮助将不胜感激。提前致谢。

c# fonts embedded-resource winforms

5
推荐指数
1
解决办法
2507
查看次数

C#使用自己的字体而不安装它

可能重复:
如何在C#应用程序中嵌入字体?(使用Visual Studio 2005)

嗨,

我想将自己的字体用于文本框,而无需在客户端计算机中安装它.我希望它驻留在我的程序文件应用程序文件夹中.[我知道大多数游戏应用程序都使用自己的字体].我该怎么做 ?

谢谢.

c# fonts

4
推荐指数
1
解决办法
3598
查看次数