小编Chr*_*ler的帖子

从字节数组中读取C#中的C/C++数据结构

从byte []数组填充C#结构的最佳方法是什么,其中数据来自C/C++结构?C结构看起来像这样(我的C很生锈):

typedef OldStuff {
    CHAR Name[8];
    UInt32 User;
    CHAR Location[8];
    UInt32 TimeStamp;
    UInt32 Sequence;
    CHAR Tracking[16];
    CHAR Filler[12];
}
Run Code Online (Sandbox Code Playgroud)

并填写这样的东西:

[StructLayout(LayoutKind.Explicit, Size = 56, Pack = 1)]
public struct NewStuff
{
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
    [FieldOffset(0)]
    public string Name;

    [MarshalAs(UnmanagedType.U4)]
    [FieldOffset(8)]
    public uint User;

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)]
    [FieldOffset(12)]
    public string Location;

    [MarshalAs(UnmanagedType.U4)]
    [FieldOffset(20)]
    public uint TimeStamp;

    [MarshalAs(UnmanagedType.U4)]
    [FieldOffset(24)]
    public uint Sequence;

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 16)]
    [FieldOffset(28)]
    public string Tracking;
}
Run Code Online (Sandbox Code Playgroud)

什么是复制OldStuff到的最佳方式NewStuff,如果OldStuff作为byte []数组传递? …

.net c# marshalling data-structures

78
推荐指数
3
解决办法
5万
查看次数

有没有办法在 Azure DevOps 中克隆或复制现有的 Ci/CD 管道

我有几个 CI 管道,我在 Azure DevOps 中使用它们来构建一些 Xamarin 应用程序,我想创建一个新的管道来合并两个现有管道的功能。有没有办法复制或克隆现有管道,以便我可以在不影响现有管道的情况下对新管道进行更改?

我看到我可以将管道导出到 JSON 文件,然后将其重新导入。 JSON 文件中的所有 id 值都是 GUID。导入过程会创建新的 GUID,还是会导入 JSON 文件覆盖现有管道。

azure-devops azure-pipelines

34
推荐指数
3
解决办法
2万
查看次数

用.NET编写的服务可以自行终止吗?

我有一个用C#编写的服务应用程序,在某些情况下,我希望它能自行终止.这将在服务运行一段时间后发生,因此OnStart()事件中不会发生这种情况.

到目前为止,我所阅读的所有内容都表明,终止服务的唯一安全方法是通过服务控制管理器.我的服务作为本地服务运行,并且没有启动或停止服务的权限,因此我无法从服务本身访问SCM.还有另一种自我终止方式,同时仍然按照SCM的规则进行游戏吗?

c# windows-services

19
推荐指数
3
解决办法
2万
查看次数

在C#中保存图元文件

如果我在System.Drawing.Image中有一个wmf或emf图像,有没有办法用c#保存图元文件数据而不将其渲染为位图?调用Image.Save会将其呈现为位图,我希望保留原始数据,使其仍然是有效的.wmf或.emf格式文件.

c# wmf .emf

6
推荐指数
1
解决办法
8803
查看次数

检测SMO存在的最佳方法是什么?

我有一些代码使用SMO来填充可用的SQL Server和数据库列表.虽然我们不再支持SQL Server 2000,但代码可能会在SQL Server 2000并且没有安装SMO库的计算机上运行.我会首先检查SMO并优雅地降低功能,而不是炸毁用户的脸.什么是检测机器上是否有SMO的最佳方法?

我通过快速Google扫描看到的每个示例都是"查找C:\ Program Files\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.Smo.dll"的变体.该方法的问题在于它仅适用于SQL Server 2005.如果SQL Server 2008是唯一安装的SQL Server,则路径将不同.

sql-server smo

5
推荐指数
2
解决办法
7223
查看次数