我试图在2d数组中对元素进行排序,但在将值赋给k时,它会给出此错误.
"警告:赋值在没有强制转换的情况下从指针生成整数".
为什么我得到它,我该如何解决?
for(i=1;i<3;++i)
{
for(j=3-1;j>=1;--j)
{
if(a[j-1]>a[j])
{
k = a[j-1];
a[j-1]=a[j];
a[j] = k;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我在使用c#进行序列化和反序列化时遇到了问题.基本上我使用DataContractSerializer来序列化对象.
这是我的序列化代码:
var serializer = new DataContractSerializer(typeof(ProjectSetup));
string xmlString;
using (var sw = new StringWriter())
{
using (var writer = new XmlTextWriter(sw))
{
writer.Formatting = Formatting.Indented;
serializer.WriteObject(writer, DALProjectSetup);
writer.Flush();
xmlString = sw.ToString();
}
}
System.Web.HttpContext.Current.Session["ProjectSetup"] = xmlString;
Run Code Online (Sandbox Code Playgroud)
这工作正常,但现在我需要有关如何反序列化上述内容的帮助.
我有一个asp页面访问c ++代码并获取返回的xml字符串.每当我访问网页时,我都会在网络浏览器中超时.
我想我知道这个问题,但我不确定如何解决它.我不确定xml字符串有多大,所以我不确定声明变量的大小,所以我声明iDataBufferSize是我能做到的最大值.
以下函数有一个for循环,它创建一个返回到asp代码的xml字符串.
for循环需要经过大约500行,我认为,当它击中这条线wcscat_s(wDataBuffer,iSize,wBuffer);,它启动磁盘交换和减慢for循环.
我知道当我使iDataBufferSize更小时,它可以工作,但我担心我不会使缓冲区足够大的xml字符串.
谢谢--Dimitry
LPWCH wLargeDataBuffer = 0;
char *cLargeCBuffer = 0;
size_t iDataBufferSize = 93276800;
wLargeDataBuffer = new WCHAR[iDataBufferSize];
cLargeCBuffer = new char[iDataBufferSize];
memset(wLargeDataBuffer, 0, iDataBufferSize);
memset(cLargeCBuffer, 0, iDataBufferSize);
iDataLen = getCServPBJList(wLargeDataBuffer, iDataBufferSize);
int CAdminConsoleInterface::getCServPBJList(LPWCH wDataBuffer, size_t iSize) {
wcscpy_s(wDataBuffer, iSize, L"<jobsList>");
houseKeeper->getCServJobsXML(wDataBuffer, iSize, configHandler->getTextValue (L"UniqueID"), L'P');
wcscat_s(wDataBuffer, iSize, L"</jobsList>");
return wcslen(wDataBuffer);
}
int CHouseKeeper::getCServJobsXML(LPWCH wDataBuffer, size_t iSize, LPWCH wLocation, WCHAR wPrefix) {
WCHAR wIndexPath[1024];
WCHAR wBuffer[1024];
LPWCH wTempBuffer = new WCHAR[16384];
int rc;
char *zErrMsg=0; …Run Code Online (Sandbox Code Playgroud) 在(Form1)中我有一个设置按钮,当我点击它时,会显示一个新的表单(Form2),使用以下代码行:
private void b7_Click(object sender, EventArgs e)
{
Form3 frm = new Form3();
frm.Show();
}
Run Code Online (Sandbox Code Playgroud)
在form3中,我有6个文本框和两个按钮,保存和取消.

我要做的是向用户提供此表单,以便将必要的数据键入表单,然后单击"保存设置"按钮.在Form1中,我想访问这些文本框以获取其当前值(当用户单击保存设置时).我试图添加一个Form4并命名它(MiddleForm),我添加了6个文本框,并在Form3(上图中的表单)我写了这些行:
private void button2_Click(object sender, EventArgs e)
{
MiddleForm mf = new MiddleForm();
mf.textBox1.Text = keywrd1.Text;
mf.textBox2.Text = keywrd2.Text;
mf.textBox3.Text = keywrd3.Text;
mf.textBox4.Text = keywrd4.Text;
mf.textBox5.Text = keywrd5.Text;
mf.textBox1.Text = thelink.Text;
Close();
}
Run Code Online (Sandbox Code Playgroud)
然后我试图从Form1(我需要使用文本框值的形式)访问传递给MiddleForm的值,在Form1中,我写了这些行(仅用于调试目的)
MiddleForm mf = new MiddleForm();
MessageBox.Show(mf.textBox1.Text); // to see whether there is something
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有任何东西传递给mf.TextBox1

如何从Form1调用Form3的当前值(使用保存设置保存按钮保存),以便在其余代码中使用它们.
有什么帮助让这个工作?
我打算在WPF中绘制这些形状.这是一个教育软件.
您对如何实现这些多维数据集和视图有什么想法?
我一开始就计划开始使用画布和画画,但我想它会变得永恒.所以我想如果存在一些图书馆来帮助我绘制它们?

是否有人可以帮助我在共同的LISP中编写一个函数来计算列表中的数字?我写的代码如下,但它不起作用!
(defun count-numbers(lst)
(let(result()))
(dolist(number lst)
(push number result))
(length result))
Run Code Online (Sandbox Code Playgroud)
例如,当我输入此查询时"(count'(r 4 f d w 2 3 4 1 z))",我必须得到5.
我正在使用Psion的SDK在移动设备上提供签名控制.我想在签名控件(这是一个图片框)周围绘制一个矩形.我已将以下内容放入Paint事件中,但问题是它闪烁(当您在图片框中登录时,图片框会不断刷新.
有没有办法把它放到表单的load事件中,所以它只加载一次?我知道它需要有PainEventArgs,但我对此并不十分肯定.
private void scSignature_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(new Pen(Color.Black, 2f), 0, 0,
e.ClipRectangle.Width - 1,
e.ClipRectangle.Height - 1
);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试在catch方法中编写一个if-else块,但是当我得到错误时"并非所有代码路径都返回int类型".
本质上,我正在编写一个将UserName和Password保存到Sql CE数据库的方法,我想测试一个特定的错误.(UserName已存在.)UserName列是唯一的,因此它将可靠地抛出带有NativeError = 25016的SqlCeException.我想显示带有错误消息的内容,否则以更通用的方式处理其他异常.
我的代码是:
try
{
//insert command (This is where the duplicate column error is thrown)
//Select @@Identity & Return it
}
catch (SqlCeException ex)
{
if (ex.NativeError == 25016)
MessageBox.Show("Username already in use.");
else
//whatever
}
Run Code Online (Sandbox Code Playgroud)
我试过显示一个不同的,更通用的消息,并获得无返回错误.我已经尝试抛出一个新的异常并在另一个块中捕获它.同样的错误.我试过返回-1(作为一种标志值).同样的错误.
对于这种特殊情况,似乎没有比SqlCeException更具体的错误(虽然我刚刚失败了我的debug-fu).
任何创造性的解决方案?最糟糕的情况是,我会编写一个方法,在调用此方法之前检查DB是否有重复的用户名.
我正在玩VBScript,我想制作一个MsgBox,询问用户是否要关闭计算机。
如果用户单击,Yes他们应该首先看到一个MsgBox,然后他们的计算机开始关闭。
我正在使用此代码,但不起作用。
问题是什么?
result = MsgBox ("Shutdown?", vbYesNo, "Yes/No Exm")
Select Case result
Case vbYes
MsgBox("shuting down ...")
Option Explicit
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "C:\WINDOWS\system32\shutdown.exe -r -t 0"
Case vbNo
MsgBox("Ok")
End Select
Run Code Online (Sandbox Code Playgroud) 我有一个计时器,每秒循环通过以下代码.这段代码一个接一个地读取几个xml片段,然后将它们打印到屏幕上,然后在一秒钟之后再重复一遍.输出:
34,
23,
12,
Run Code Online (Sandbox Code Playgroud)
我想要做的是将所有数据写入一个字符串,如34,23,12,然后返回它,以便另一个类可以使用它.但是,如果我把它(字符串代码,你会在下面看到)在if (fragmentReader.Read())代码下它不起作用,因为它只是与它上面的console.writeline做同样的事情:读取其中一个片段然后写入控制台,然后是下一个片段,它不会将片段中的所有值都添加到一个字符串中.
谢谢
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
using (var file = MemoryMappedFile.OpenExisting("AIDA64_SensorValues"))
{
using (var readerz = file.CreateViewAccessor(0, 0))
{
var bytes = new byte[195];
var encoding = Encoding.ASCII;
readerz.ReadArray<byte>(0, bytes, 0, bytes.Length);
//File.WriteAllText("C:\\myFile.txt", encoding.GetString(bytes));
StringReader stringz = new StringReader(encoding.GetString(bytes));
var readerSettings = new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment };
using (var reader = XmlReader.Create(stringz, readerSettings))
{
while (reader.Read())
{
using (var fragmentReader = reader.ReadSubtree())
{
if (fragmentReader.Read())
{
reader.ReadToFollowing("value"); …Run Code Online (Sandbox Code Playgroud)