使用未分配的局部变量“ SHELLEXECUTEINFO”

用户名

大家好,在调试用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;
    }
汉斯·帕桑特

您的初始化程序正在使用变量,然后再对其进行初始化。初始化程序常见的鸡和蛋问题。您可以使用其他重载:

    Form1.SHELLEXECUTEINFO sHELLEXECUTEINFO = new Form1.SHELLEXECUTEINFO()
    {
        cbSize = Marshal.SizeOf(typeof(Form1.SHELLEXECUTEINFO)),
        lpFile = pWOLocation,
        // etc...
    };

或更一般的解决方案:

    Form1.SHELLEXECUTEINFO sHELLEXECUTEINFO = new Form1.SHELLEXECUTEINFO()
    {
        lpFile = pWOLocation,
        // etc...
    };
    sHELLEXECUTEINFO.cbSize = Marshal.SizeOf(sHELLEXECUTEINFO));

要求其他人检查您的代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LINQ,输出参数和“未分配的局部变量的使用”错误

来自分类Dev

在分配它的if-else语句中使用未分配的局部变量

来自分类Dev

“使用未分配的局部变量”错误的原因是什么?

来自分类Dev

未分配的局部变量和短路评估

来自分类Dev

抑制“使用未分配的局部变量”错误?

来自分类Dev

模式匹配和未分配的局部变量

来自分类Dev

在while条件中使用未分配的局部变量和“无法写入已关闭的TextWriter”。

来自分类Dev

使用未分配的局部变量c#

来自分类Dev

在尝试捕获中使用未分配的局部变量

来自分类Dev

使用异步/等待时使用未分配的局部变量

来自分类Dev

使用未分配的局部变量“ strCity”

来自分类Dev

在finally块上使用未分配的局部变量

来自分类Dev

C#Winform使用未分配的局部变量

来自分类Dev

在Graphics.Drawing中使用未分配的局部变量

来自分类Dev

错误在C#中使用未分配的局部变量(开关)

来自分类Dev

使用已分配的未分配局部变量

来自分类Dev

使用Try,catch,finally的局部变量未分配问题

来自分类Dev

在调试中使用未分配的局部变量

来自分类Dev

使用未分配的局部变量数组

来自分类Dev

C#使用未分配的局部变量

来自分类Dev

使用未分配的局部变量“ folderPath”

来自分类Dev

C#使用未分配的局部变量异常

来自分类Dev

使用未分配的局部变量“ x”

来自分类Dev

错误“使用未分配的局部变量”?

来自分类Dev

使用foreach循环时使用未分配的局部变量

来自分类Dev

尝试返回 bool 时使用未分配的局部变量

来自分类Dev

C#未分配的局部变量?

来自分类Dev

使用未分配的局部变量“书”

来自分类Dev

错误 CS0165 使用未分配的局部变量“json”

Related 相关文章

热门标签

归档