2006
04-03

No.01

我只学过VB

我想知道在VB

For 变量 = 数字 To 数字

  …

Next



Do

  …

Loop //这个不管用

这句话在VC里怎么实现

如果看不懂这句话的人

就是循环指定次数的代码q3460838810.8670023148


刚学VC的问题》有 5 条评论

  1. q34608 说:

    No.02

    弹出一个对话框

    VB里MsgBox(内容,方式,标题)

  2. q34608 说:

    No.03

    初始化随机数生成器

    VB里Randomize

    产生随机数

    VB里Rnd()q3460838810.8699305556

  3. q34608 说:

    No.04

    打开一个文件

    读一个文件

    写一个文件q3460838810.8728819444

  4. q34608 说:

    No.05

    定义一个变量

    VB里Dim 变量 As 形势

  5. xstar 说:

    No.01

    For 变量 = 数字1 To 数字2
        …
    Next
    循环次数为(数字2 – 数字1 + 1),数字2参与循环,改为C/C++如下
    int iLoop;
    for ( iLoop = 数字1; iLoop <= 数字2; iLoop++ ) { // 循环条件同VB中的,这里演示的是递增.
        …;
    }

    Do
        …
    Loop //这个不管用

    Do [{While | Until} condition]
    [statements]
    [Exit Do]
    [statements]
    Loop

    根据意思可以转换为
    while ( condition ) {
        …;
    }

    do {
        …;
    } while ( condition );

    No.02

    int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
    MessageBox( NULL, 内容, 标题, 方式 );//第一个参数为当前窗口的指针,可以为NULL

    No.03

    #include <stdlib.h>
    void srand( unsigned int seed ); // 初始化种子
    int rand( void ); // 得到随机数

    No.04

    这块内容比较多,具体看书,这里给个例子:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    #define _BUF_LEN 16384

    void usage( char *proname );
    int crlftolf( char *s_buf, char *d_buf, int isrclen );

    int main( int argc, char *argv[] )
    {
     FILE *s_fp;
     FILE *d_fp;

     char s_buf[ _BUF_LEN ];
     char d_buf[ _BUF_LEN ];

     int tread      = 0;
     int twrite     = 0;
     int numread    = 0;
     int numwrite   = 0;
     int numtowrite = 0;

     if ( 3 != argc ) {
      usage( argv[ 0 ] );
      exit( 1 );
     }

     if ( 0 == strcmp( argv[ 1 ], argv[ 2 ] ) ) {
      usage( argv[ 0 ] );
      exit( 1 );
     }
     if ( (FILE *)NULL == ( s_fp = fopen( argv[ 1 ], “rb” ) ) ) {
      printf( “Open File %s Error\n”, argv[ 1 ] );
      exit( 1 );
     }

     if ( (FILE *)NULL == ( d_fp = fopen( argv[ 2 ], “wb” ) ) ) {
      fclose( s_fp );
      printf( “Open File %s Error\n”, argv[ 2] );
      exit ( 1 );
     }

     while( !feof( s_fp ) ) {
      numread = fread( s_buf, 1, _BUF_LEN, s_fp );

      if ( ferror( s_fp ) ) {
       printf( “Read error %s”, argv[ 1 ] );
       break;
      }

      numtowrite = crlftolf( s_buf, d_buf, numread );

      numwrite = fwrite( d_buf, 1, numtowrite, d_fp );

      tread += numread;
      twrite += numwrite;
     }

     printf( “PROGRAM: read %d bytes, write %d bytes\n”, tread, twrite );
     fclose( d_fp );
     fclose( s_fp );

     return 0;
    }

    void usage( char *proname )
    {
     printf( “%s by XStar[xstar.wxb]\n\n”, proname );
     printf( “convert 0D0A to 0A\n” );
     printf( “usage:\n\t%s s_file d_file\n”, proname );
    }

    int crlftolf( char *s_buf, char *d_buf, int isrclen )
    {
     int  icnt  = 0;
     int  iloop = 0;

     for ( iloop = 0; iloop < isrclen; iloop++ ) {
      if ( 0x0D == *(s_buf + iloop) ) {        /* delete 0x0D */
       continue;
      }
      *(d_buf + icnt ) = *(s_buf + iloop);
      icnt++;
     }

     return icnt;
    }

    No.05

    这块内容看VC/VB混合编程,几点注意的是VB中尽量不要用Integer和Boolen类型,这两种类型都用Long类型代替,因为VB中Integer类型是16位的,Boolen类型的true和false与VC中的定义不同.

    其他的主要是传内存时最好在VB中分配好空间,然后传地址给VC;

    定义的例子
    Dim lLoop As long

    long lLoop;

留下一个回复