在这个工程里只查找到函数调用,却找不到函数声明和定义,照样可以通过编译?

解决方案 »

  1.   

    我以关键字为“函数名”用查找文件查找整个工程,只能找到一个函数调用。
    URL http://www.realvnc.com/dist/vnc-4.0-winsrc.zip 708 KB
    我现在在研究它里面的rfb_win32工程。哪路能帮忙解决。
      

  2.   

    1.在include 的.h中找找看
    2. .C文件编译时可以不定义或声明(如果LIB库中有),VC连警告都不会有
    如以下程序
    main()
    {
      printf("ok");
    }
    中printf没有申明和定义,可以编译通过的
    (用c++ builder或intel编译器会有警告)
      

  3.   

    printf是C库里的,当然不用声明。可是我的那个工程里的函数是saveBMP,它不是系统库。
      

  4.   

    LIB库中的函数被调用都需要被声明,coff或omf结构的lib文件都不会告诉编译器函数的参数类型,顶多就是一个导出表
    只不过是你没有发现罢了,并非没有声明
      

  5.   

    我看了一下程序,找到原因
    原来里面有
    #if (WINVER >= 0x0500)
    #ifdef _DIALOG_CAPTURE
    ...
       saveBMP(filename, &fb);
    #endif
    #endif ----------------------------
    1.在我的VC中.WINVER定义为0x400
    2._DIALOG_CAPTURE 根本没有定义,
    所以下面的程序不会被编译,随便你写什么,都会通过