小编zia*_*zia的帖子

如何将变量参数传递给exe?

好吧,假设我有b.exe,它接受一个字符串参数.我想在a.cpp中使用系统调用b.exe:

    string s1 = "hallo";
    system("b.exe s1");
    printf("s1 after invoke = %s",s1);
Run Code Online (Sandbox Code Playgroud)

这是b.cpp中的代码:

    int main(string s)
    {
         s = "hello world";
         return 0; 
    }
Run Code Online (Sandbox Code Playgroud)

我想要的是,当我运行a.exe时,输出将是:

    s1 after invoke = hello world
Run Code Online (Sandbox Code Playgroud)

有可能这样做吗?基本上,我只是想将一个变量传递给一个exe,但它必须通过引用,而不仅仅是值,因为我希望在我调用的exe中处理和修改该变量.我已经在互联网上搜索了解决方案,但它只提供了一种方法,可以通过值将变量传递给exe,而不是通过引用.

任何建议将非常感激,但如果可能的话,我希望以上述更正代码的形式提出建议,并包括文件,如果有的话.谢谢你的帮助 :)

c++ exe invoke pass-by-reference visual-studio-2008

5
推荐指数
1
解决办法
4511
查看次数

Sleep()在winapi32中不起作用?

我仍然是使用c ++ winapi32编程GUI的初学者,我发现了一些奇怪的东西.这是我的代码的一部分:

        InvalidateRect(hwnd,&rect, true);
        //Sleep(delay);
        MessageBox(hwnd, "Blahblah!", "blahblah",MB_OK | MB_ICONINFORMATION);
        InvalidateRect(hwnd,&rect, true);
        //Sleep(delay);
        MessageBox(hwnd, "Blahblah!", "blahblah",MB_OK | MB_ICONINFORMATION);
Run Code Online (Sandbox Code Playgroud)

我使用Invalidaterect重新绘制我的一部分窗口,我想要做的是每隔1秒左右重新绘制一次窗口,以使用户的眼睛看到明显的变化.奇怪的是,Sleep似乎不会影响我的窗口,如果它没有跟随MessageBox命令,而实际上我不希望每次重新绘制都有任何MessageBox命令,因为它太令人不安了.

我已经尝试了1000,2000甚至10000的延迟.随着睡眠,风暴确实冻结了,但是在最后一次睡眠命令中,表面重新粉刷只进行了1次......

此代码是void A()的一部分.void void()由void B()调用.

       //Message loop
       if(turn == 0)
       {
       B();
       }           
Run Code Online (Sandbox Code Playgroud)

我有什么办法可以解决这个问题吗?

哦,是的,我顺便使用MS Visual C++ 2008 Express

在此事先感谢您对此事的任何帮助:)

c++ winapi visual-c++-2008

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

如何初始化char**?

这是我的一段代码:

char** filename;
*(filename) = "initialize";
printf("filename = %s",*(filename));
Run Code Online (Sandbox Code Playgroud)

我尝试运行它时出现此错误:

Run-Time Check Failure #3 - The variable 'filename' is being used without being initialized.
Run Code Online (Sandbox Code Playgroud)

有没有什么办法解决这一问题?

c++ char visual-studio-2008

-1
推荐指数
1
解决办法
4474
查看次数