问题列表 - 第1581页

将Marshal C++ struct数组转换为C#

我在C++中有以下结构:

#define MAXCHARS 15

typedef struct 
{
    char data[MAXCHARS];
    int prob[MAXCHARS];
} LPRData;
Run Code Online (Sandbox Code Playgroud)

我正在调用一个函数来获取这些结构中的3个数组:

void GetData(LPRData *data);
Run Code Online (Sandbox Code Playgroud)

在C++中我会做这样的事情:

LPRData *Results;
Results = (LPRData *)malloc(MAXRESULTS*sizeof(LPRData));
GetData( Results );
Run Code Online (Sandbox Code Playgroud)

它会工作得很好,但在C#我似乎无法让它工作.我已经像这样创建了一个C#结构:

public struct LPRData
{

    /// char[15]
    [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 15)]
    public string data;

    /// int[15]
    [MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15)]
    public int[] prob;
}
Run Code Online (Sandbox Code Playgroud)

如果我初始化其中3个(及其所有子数组)的数组并将其传递给此:

GetData(LPRData[] data);
Run Code Online (Sandbox Code Playgroud)

它成功返回,但LPRData数组中的数据没有更改.

我甚至尝试创建一个大小为3 LPRData的原始字节数组,并将其传递给函数原型,如下所示:

GetData(byte [] data);

但在这种情况下,我将从第一个LPRData结构中获取"数据"字符串,但在此之后没有任何内容,包括来自同一LPRData的"prob"数组.

有关如何妥善处理此问题的任何想法?

c# c++ interop struct marshalling

28
推荐指数
2
解决办法
7万
查看次数

将SVN存储库复制到外部HDD是否安全?

现在,我的SVN存储库位于笔记本电脑的硬盘上(虽然我使用代码托管服务来处理更多"关键"个人项目),我只是每周复制一次目录(最终会编写脚本或者我会制作它的地狱应用程序).我是否有破坏我的SVN存储库的风险?到目前为止,我对原件或副本没有任何问题,但这并不意味着我将来不会有风险.

svn version-control backup

8
推荐指数
1
解决办法
1685
查看次数

一个单元应该如何测试hashCode-equals合约?

简而言之,hashCode契约,根据Java的object.hashCode():

  1. 除非影响equals()的内容发生变化,否则哈希码不应更改
  2. equals()表示哈希码是==

让我们主要关注不可变数据对象 - 它们的信息在构造之后永远不会改变,因此假定#1成立.留下#2:问题只是确认等于隐含代码==.

显然,我们无法测试每个可想到的数据对象,除非该集合很小.那么,编写可能会遇到常见情况的单元测试的最佳方法是什么?

由于此类的实例是不可变的,因此构造此类对象的方法有限; 如果可能的话,这个单元测试应该涵盖所有这些.在我的脑海中,入口点是构造函数,反序列化和子类的构造函数(应该可以简化为构造函数调用问题).

[我打算通过研究来回答我自己的问题.来自其他StackOverflowers的输入是这个过程的一个受欢迎的安全机制.]

[这可能适用于其他OO语言,所以我添加了该标签.]

java oop unit-testing

72
推荐指数
3
解决办法
4万
查看次数

继承自ASP.NET Web控件:"元素<name>不是已知元素"

我正在尝试创建一个继承自ASP.Net内置日历用户控件的自定义日历控件.

我的控件的代码隐藏文件如下所示:

public partial class WeeklyEventsCalendar : Calendar
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

编译好.

但是,当我尝试将自定义控件放在aspx页面上时:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testbed.aspx.cs" Inherits="testbed" %>
<%@ Register Src="UserControls/WeeklyEventsCalendar.ascx" TagName="WeeklyEventsCalendar"
    TagPrefix="mvs" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>Untitled Page</title>
    <link href="~/css/VitalSignsStyleSheet.css" type="text/css" rel="stylesheet" />
</head>
<body>
    <div>
        <mvs:WeeklyEventsCalendar runat="server" />
    </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我得到一个警告'Element WeeklyEventsCalendar不是一个已知的元素.如果网站中存在编译错误,或者缺少web.config文件,则会发生这种情况.尝试

当我错误输入文件的位置时,我没有像过去那样得到任何"找不到文件"的错误.

当我尝试在浏览器中加载aspx页面时,出现错误CS0115: 'ASP.usercontrols_weeklyeventscalendar_ascx.FrameworkInitialize()':找不到合适的方法来覆盖

这更令人困惑,因为我的代码中没有任何地方可以尝试定义这样的函数.

这应该很简单.我哪里错了?

c# asp.net inheritance user-controls

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

你个人认同你的代码吗?

在Stack Overflow播客的最新一集(第25集)中,Steve Yegge提到了用自己喜欢的框架,语言,技术等来表达情感是多么糟糕.

你称自己为< 在此处插入您的语言 >开发人员吗?这是一件好事吗?

language-agnostic

2
推荐指数
1
解决办法
523
查看次数

使用C#/ Windows Forms的简单动画

我需要在C#/ Windows Forms中敲出一个快速动画来进行万圣节显示.只是一些2D形状在坚实的背景上移动.由于这只是一个快速的一次性项目,我真的不想安装和学习一整套新的工具.(DirectX开发工具包,Silverlight,Flash等.)我还必须在多台计算机上安装它,因此除了基本的.Net框架(2.0)之外的任何东西都会让人痛苦.

对于工具,我有VS2k8,25年的开发经验,独轮车,大屠杀斗篷,大约2天就可以解决这个问题.自从在我的Atari 130XE上使用汇编程序以来,我没有完成动画(对于页面翻转和播放器/导弹图形来说很好!)

建议吗?以下是我想知道的一些事情:

  • 我可以通过摆弄它的OnPaint处理程序来绘制任何空的小部件(如面板),对吗?这就是我绘制自定义小部件的方式.有没有比这更好的技术?
  • 在Windows窗体中是否存在针对此类事物的页面翻转技术?我不是在寻找高帧速率,只需要根据需要进行少量闪烁/绘图.

谢谢.

Post Mortem Edit ..."几天后编码"

好吧,项目已经完成.下面的链接派上用场,虽然其中有几个是404.(我希望SO允许不止一个回复被标记为"正确").我必须克服的最大问题是闪烁,当我试图直接在表单上绘制时,这是一个持久的错误.

  • 使用Form的OnPaint事件:坏主意.我从来没有这样做过; 许多神秘错误(堆栈溢出或ArgumentNullExceptions).我最后使用一个尺寸适合填充表格的面板,工作正常.
  • 无论如何,使用OnPaint方法很慢.我在网上看到,构建PaintEventArgs的速度很慢,并且他们不是在开玩笑.当我抛弃它时,很多闪烁消失了.跳过OnPaint/Invalidate()并自己绘制它.
  • 设置表单上的所有"双缓冲"选项仍然留下一些必须修复的闪烁.(我发现有冲突的文档说"将它们设置在控件上"并"将它们设置在窗体上".好的控件没有.SetStyle()方法.)我没有测试它们,所以它们可能是做某事(this是形式):

        this.SetStyle(ControlStyles.UserPaint, true);
        this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
        this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
    
    Run Code Online (Sandbox Code Playgroud)

所以代码的主力看起来像(pf是面板控件):

    void PaintPlayField()
    {
        Bitmap bufl = new Bitmap(pf.Width, pf.Height);
        using (Graphics g = Graphics.FromImage(bufl))
        {
            g.FillRectangle(Brushes.Black, new Rectangle(0, 0, pf.Width, pf.Height));
            DrawItems(g);
            DrawMoreItems(g);
            pf.CreateGraphics().DrawImageUnscaled(bufl, 0, 0);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我刚从Timer循环内部调用了PaintPlayField.根本没有闪烁.

.net c# animation winforms

53
推荐指数
2
解决办法
8万
查看次数

Eclipse和Netbeans如何共存?

我想在一个系统上安装Eclipse和Netbeans(使用JUnit),所以我可以对它们有所了解.

除了GUI开发(参见"同时使用Eclipse和Netbeans "),在同一系统甚至同一个项目中使用这两个IDE还有其他问题吗?

java eclipse junit netbeans

14
推荐指数
3
解决办法
5955
查看次数

具有相同名称但根据上下文具有不同子结构的元素的XML模式

我尝试为我收到的XML文档定义一个模式.

文件看起来像:

<root>
    <items>
        <group name="G-1">
            <item name="I-1"/>
            <item name="I-2"/>
            <item name="I-3"/>
            <item name="I-4"/>
        </group>
    </items>
    <data>
        <group name="G-1" place="here">
            <customer name="C-1">
                <item name="I-1" count="3"/>
                <item name="I-2" count="4"/>
            </customer>
            <customer name="C-2">
                <item name="I-3" count="7"/>
            </customer>
        </group>
    </data>
</root>
Run Code Online (Sandbox Code Playgroud)

我试过.NET 2.0中的XmlSpy和xsd.exe.两者都创建了允许在<group>任意数量<item><customer>元素下面的模式定义.但是我正在寻找应限制<group>以下<items>,以<item>元素,<group>下面<data><customer>元素.

这是xml架构根本不具备的吗?

xsd

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

用于显示数据库中项目的最佳控件是什么?

我正在写一个网站,将从我的一个课程中出售物品.它将链接到SQL Server数据库,我将在其中提取定价,项目名称,数量和描述.如果我想以thinkgeek的方式显示数据库中的项目,那么最好的控件是什么,所以我可以将显示实际看起来很好用?

c# asp.net

2
推荐指数
1
解决办法
196
查看次数

PHP的最佳XML解析器

我之前使用过XML Parser,虽然它工作正常,但我对它一般不满意,感觉就像我在使用基本功能的东西时使用变通方法.

我最近看过SimpleXML,但我还没有尝试过.它更简单吗?两者有哪些优点和缺点?你用过的其他任何解析器?

php xml parsing xml-parsing

145
推荐指数
5
解决办法
18万
查看次数