西西河

主题:求教一个VC.net的问题 -- 面壁

共:💬15 🌺11 新:
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 求教一个VC.net的问题

    int main(int argc, char* argv[])

    {

    std::cout<<argv[1];

    return 0;

    }

    如何在visual C++和Linux上实现?

    (即怎么让我在命令行上给出argv[1]?)

    谢谢了!

    • 家园 linux上
      • 家园 谢谢了,难道VC是这样的吗?

        VC:

        进入dos命令行,进入该文件目录,

        输入: *.exe argv[1]

        是这么样的吗?

        • 家园 在vc里,调试的时候,

          可以预设command line parameter, 自己在编译,还是debug的菜单里找一下, 有一个对话框里有的.

        • 家园 argv是指你的参数列表数组

          argv[0]默认为你的可执行程序名.

          *.exe /a /b

          其中的/a就是argv[1],

          /b就是argv[2]

          • 家园 多谢兄台。 准确的讲,

            多谢兄台。 准确的讲,我的问题是一个VC.net的问题:

            我执行C++程序时,通常建一个Projekt, 然后运行时自动弹出一个dos 窗口。

            当涉及到argv[1]时,就不知该怎么办了。我只有进入dos命令行,进入该文件目录,然后输入:*.exe argv[1] 。请教兄台:是这么样的吗?

            argv[1]是一个文件名。当我写的程序要调这个文件(20M)时(加密完需2秒),它必须在Debug这个文件夹外; 而标准算法写的同样的程序要调这个文件时,它必须在Debug这个文件夹内!(加密完需30秒!实际应为400毫秒)

            所以我就搞不懂了?虚心再求教兄台。

            • 家园 简单,

              除了你说的那种方法外,还可以创建一个这个.exe文件的快捷方式,把需要加密的文件拖到这个快捷方式上或者直接拖到这个.exe文件上.

              之所以出现在目录外面和在目录里面的情况,是因为你编译对象所在的目录和当前目录不在一起,而你又没有在argv[1]中给出全路径文件名

              • 家园 牛!不过运行时间如何解释?

                我想应该还是路径的问题。

                可是我将"文件名"代替argv[1],应该不会有路径的问题吧,可是一样,还是30秒!

                • 家园 debug mode可能比release mode慢

                  release mode有optimzed for speed选项。另外库连接方式也不同,不过这些你都可以自己改。

                  另外.net里面mixed mode debug很慢,可以把debugger类型设成managed。你这个速度差这么多有可能与此有关。

                  • 家园 已向铁大人表奏,将通宝献上!
                    • 家园 这,这。。。

                      我碰巧知道一点皮毛罢了,举手之劳何当如此大礼!

                      debug和release只是两种预设的configuration罢了。具体分别是什么,只要打开project->properties就可以看到了,你也可以自己改。一般来说debug会在obj里加进一些额外的symbols,preprocessor也会加些东西,另外比如memory allocation会有额外的保护检查覆盖,没有optimization等等。这些都有可能造成速度下降。

                      在.net里面managed code和unmanaged code混在一起往往会造成速度问题,你可以对比一下标准程序,是否有需要把你的程序migrate成managed code。

                      抱歉中英文混用,自己看着也觉得特别扭。不过不知道中文的术语,只好将就了。

                  • 家园 多谢了!!!就是Debug惹得祸!

                    改成release,从60秒降到了400毫秒!!!(我的程序只从2秒降到了1,4秒 为什么?使用STL要快吗?)

                    查了4,5本书,只查到一句话:”debug通常在测试时使用。“ 老兄若有时间,可否再进一步解释一下debug与release的区别,功能?

                • 家园 你是在调试模式下运行么?

                  vc的时间函数好像不一定准的

                  • 家园 何解?

                    就是C++的程序,时间函数是用int start=clock();

                    建立win32console-Projekt,然后compilen,然后start,最后弹出运行结果窗口。

                    标准程序用了vector<char>,我怀疑是STL的问题。因为我的程序只是用了数组(a[]),曾经也试图用STL中的map<int,int>来优化我程序中的查找部分,结果却是60秒!!!

分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河