【发布时间】:2014-02-19 15:40:03
【问题描述】:
大家好,调试我用 c# 编写的应用程序时出错 这是错误:
使用未赋值的局部变量“SHELLEXECUTEINFO”
这是错误行 cbSize = Marshal.SizeOf(sHELLEXECUTEINFO),
我不知道为什么会出现此错误或如何纠正它。
private bool PWOLaunch(int iTab)
{
string pWOLocation = Settings.Default.PWOLocation;
if (!File.Exists(pWOLocation))
{
this.openFileDialog1.ShowDialog();
pWOLocation = this.openFileDialog1.FileName;
if (!pWOLocation.Contains("PWO.exe"))
{
MessageBox.Show("Failed to Locate file: PWO.exe\nThis bot is only for Pokemon World Online!");
return false;
}
if (pWOLocation.Contains("PWO.exe"))
{
Settings.Default.PWOLocation = pWOLocation;
Settings.Default.Save();
}
}
Form1.PROCESS_INFORMATION pROCESSINFORMATION = new Form1.PROCESS_INFORMATION();
Form1.STARTUPINFO sTARTUPINFO = new Form1.STARTUPINFO();
Form1.SECURITY_ATTRIBUTES sECURITYATTRIBUTE = new Form1.SECURITY_ATTRIBUTES();
Form1.SECURITY_ATTRIBUTES sECURITYATTRIBUTE1 = new Form1.SECURITY_ATTRIBUTES();
Form1.SHELLEXECUTEINFO sHELLEXECUTEINFO = new Form1.SHELLEXECUTEINFO()
{
cbSize = Marshal.SizeOf(sHELLEXECUTEINFO),
lpFile = pWOLocation,
nShow = 1,
lpVerb = "runas",
fMask = 64
};
if (!Form1.CreateProcess(pWOLocation, null, ref sECURITYATTRIBUTE, ref sECURITYATTRIBUTE1, false, 32, IntPtr.Zero, null, ref sTARTUPINFO, out pROCESSINFORMATION))
{
MessageBox.Show("Failed to Launch file: PWO.exe");
return false;
}
StringBuilder stringBuilder = new StringBuilder("ThunderRT6FormDC");
IntPtr zero = IntPtr.Zero;
while (zero == IntPtr.Zero)
{
zero = this.FindProcessWindow(stringBuilder, pROCESSINFORMATION.dwProcessId);
}
if (!this.EmbedGame(zero, iTab))
{
MessageBox.Show("Failed to launch game into bot");
}
this.gameWindowHandles[iTab] = zero;
this.gameProcesshandles[iTab] = pROCESSINFORMATION.dwProcessId;
this.gameBotHandles[iTab] = IntPtr.Zero;
this.gameLogHandles[iTab] = IntPtr.Zero;
Form1.ShowWindow(this.gameWindowHandles[1], 0);
this.launchAllToolStripMenuItem.Text = "Restart Game";
return true;
}
【问题讨论】:
-
抱歉显示不好我是新来的,我不知道如何编辑我的问题......
-
您的问题下方有一个
edit按钮。顺便说一句,欢迎来到 Stack Overflow。你可以通过阅读FAQ、How to Ask和help center开始学习这个网站 -
在 Marshal.SizeOf 中,您正在使用该字段,将作业移出。
-
显示的大部分代码与问题无关。这使得提供帮助变得比必要的困难。我可以将所有这些减少到一行。
标签: c# .net winforms compiler-errors