首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个有关问题,bcb编译不过,vc可以通过

2013-05-02 
一个问题,bcb编译不过,vc可以通过unit1.c#include Unit2.h//---------------------------------------#p

一个问题,bcb编译不过,vc可以通过
unit1.c


#include "Unit2.h"

//---------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{

        ftemp=getFile(ftemp);
        test();
        
        return 0;
}


unit2.h
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

#ifndef Unit2H
#define Unit2H
static FILE * ftemp;
FILE* getFile(FILE * fileName);
int test();
#endif


unit2.c

#include "Unit2.h"
#pragma package(smart_init)
FILE* getFile(FILE * fileName){

    fileName = fopen("s:/22.txt", "w");
    return fileName;
}
int test(){
    printf("test %d",ftemp);
    return 0;
}


[C++ Warning] Unit1.c(12): W8065 Call to function 'test' with no prototype
[Linker Error] Unresolved external '_getFile' referenced from S:\UNIT1.OBJ
[Linker Error] Unresolved external '_test' referenced from S:\UNIT1.OBJ
[解决办法]
你没编译 unit2.c
[解决办法]
unit2.c文件另存为unit2.cpp
unit2.h文件不变,工程中移出unit2.c,添加unit2.cpp再编译
[解决办法]
我已收到邮件,问题很简单:
1. 不需要更改.c为.cpp, 就把unit1.c和和unit2.c加入到工程就行。
2. W8065 的警告,是因为你这是C单元,函数的参数即使为空,也要显式加一个void

修正后的工程已发到你信箱。

热点排行