我在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"数组.
有关如何妥善处理此问题的任何想法?
现在,我的SVN存储库位于笔记本电脑的硬盘上(虽然我使用代码托管服务来处理更多"关键"个人项目),我只是每周复制一次目录(最终会编写脚本或者我会制作它的地狱应用程序).我是否有破坏我的SVN存储库的风险?到目前为止,我对原件或副本没有任何问题,但这并不意味着我将来不会有风险.
简而言之,hashCode契约,根据Java的object.hashCode():
让我们主要关注不可变数据对象 - 它们的信息在构造之后永远不会改变,因此假定#1成立.留下#2:问题只是确认等于隐含代码==.
显然,我们无法测试每个可想到的数据对象,除非该集合很小.那么,编写可能会遇到常见情况的单元测试的最佳方法是什么?
由于此类的实例是不可变的,因此构造此类对象的方法有限; 如果可能的话,这个单元测试应该涵盖所有这些.在我的脑海中,入口点是构造函数,反序列化和子类的构造函数(应该可以简化为构造函数调用问题).
[我打算通过研究来回答我自己的问题.来自其他StackOverflowers的输入是这个过程的一个受欢迎的安全机制.]
[这可能适用于其他OO语言,所以我添加了该标签.]
我正在尝试创建一个继承自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()':找不到合适的方法来覆盖
这更令人困惑,因为我的代码中没有任何地方可以尝试定义这样的函数.
这应该很简单.我哪里错了?
在Stack Overflow播客的最新一集(第25集)中,Steve Yegge提到了用自己喜欢的框架,语言,技术等来表达情感是多么糟糕.
你称自己为< 在此处插入您的语言 >开发人员吗?这是一件好事吗?
我需要在C#/ Windows Forms中敲出一个快速动画来进行万圣节显示.只是一些2D形状在坚实的背景上移动.由于这只是一个快速的一次性项目,我真的不想安装和学习一整套新的工具.(DirectX开发工具包,Silverlight,Flash等.)我还必须在多台计算机上安装它,因此除了基本的.Net框架(2.0)之外的任何东西都会让人痛苦.
对于工具,我有VS2k8,25年的开发经验,独轮车,大屠杀斗篷,大约2天就可以解决这个问题.自从在我的Atari 130XE上使用汇编程序以来,我没有完成动画(对于页面翻转和播放器/导弹图形来说很好!)
建议吗?以下是我想知道的一些事情:
谢谢.
Post Mortem Edit ..."几天后编码"
好吧,项目已经完成.下面的链接派上用场,虽然其中有几个是404.(我希望SO允许不止一个回复被标记为"正确").我必须克服的最大问题是闪烁,当我试图直接在表单上绘制时,这是一个持久的错误.
设置表单上的所有"双缓冲"选项仍然留下一些必须修复的闪烁.(我发现有冲突的文档说"将它们设置在控件上"并"将它们设置在窗体上".好的控件没有.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.根本没有闪烁.
我想在一个系统上安装Eclipse和Netbeans(使用JUnit),所以我可以对它们有所了解.
除了GUI开发(参见"同时使用Eclipse和Netbeans "),在同一系统甚至同一个项目中使用这两个IDE还有其他问题吗?
我尝试为我收到的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架构根本不具备的吗?
我正在写一个网站,将从我的一个课程中出售物品.它将链接到SQL Server数据库,我将在其中提取定价,项目名称,数量和描述.如果我想以thinkgeek的方式显示数据库中的项目,那么最好的控件是什么,所以我可以将显示实际看起来很好用?
我之前使用过XML Parser,虽然它工作正常,但我对它一般不满意,感觉就像我在使用基本功能的东西时使用变通方法.
我最近看过SimpleXML,但我还没有尝试过.它更简单吗?两者有哪些优点和缺点?你用过的其他任何解析器?