① c语言如何使用其他源文件
有两种方法:
1。在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};
在A1.c中:在文件前头增加一行:void A2();就可以了
2。把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用; 但是注意如果在前面加上static , 就只能在本文件中使用了, 不能再被其他的文件调用。
② 如何在C#工程中调用C语言外部库
首先C语言的外部库要按照接口标准,将接口留出来,参考网址如下:
VS2010创建并使用动态链接库网页链接
C语言dll文件的说明以及生成、使用方法网页链接
制作C/C++动态链接库(dll)若干注意事项网页链接
如果只有DLL而没有源代码,不能自己编译的话,需要查询DLL的接口是什么样子的,可以使用下面的工具去查询:
DLL分析的非常好用的工具(Dependency Walker 2.2)网页链接
Dependency Walker使用说明网页链接
接下来,就可以在C#中进行C语言DLL的调用了,主要使用System.Runtime.InteropServices下的DllImport,参考网址如下:
C#直接使用DllImport外部Dll的方法网页链接
从托管应用程序调用非托管代码网页链接
另外特别要说明的是,如果你的C语言的DLL里面使用了指针操作,虽然可以使用ref的方式接收传入的数据(参考网址网页链接),但是我非常非常非常推荐你使用unsafe的方式去处理指针操作(参考网址网页链接),因为1、如果你的C语言DLL里面有内存操作错误,C#也没法去修复,2、使用unsafe的指针操作会比使用托管的ref操作效率高很多(当对效率要求非常高的时候)。
PS:网上资料很多,我列出来的资料也是现查的,你可以根据我写的内容,在网上自行搜索,寻找适合自己的资料。
③ 怎么调用外部C语言文件
解决什么了,你现在代码的问题还很多。
file1.c中的内容:
#include<file2.c>//这样你以后写程序还会出错。要建个h头文件,把函数声明放到里面就行。
int
A;
main()//没类型可以运行吗。用void
main
{
int
power(int);//这个声明放到头文件里
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);//你输入的不是A,是a.。。。
c=A*b;//c的值是0
printf("%d*%d=%d\n",A,b,c);//由于A是全局变量,值默认为0。
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的内容:
extern
A;//类型要带上,extern
int
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
file1.c中的内容:
#include<file2.c>
int
A;
main()
{
int
power(int);
int
b=3,a,c,d,m;
printf("enter
the
number
a
and
its
power
m:\n");
scanf("%d,%d",&a,&m);
c=A*b;
printf("%d*%d=%d\n",A,b,c);
d=power(m);
printf("%d*%d=%d",A,m,d);
}
file2.c中的内容:
extern
A;
power(int
n);
{
int
i,y=1;
for(i=1;i<=n;i++)
y=A;
return(y);
}
④ C语言中如何用一个程序调用另一个程序,两个程序都是.c文件。
你把被调用的.c文件中的main()函数改成其他名字 如fun();
然后在另一个.c文件的main()函数中调用fun();
只要保证一个C工程只有一个main()做入口点就行了,至于保留哪个main函数,那就要看你程序的逻辑了,注意main函数是入口点的概念
⑤ C语言中如何引用其它C源文件中的函数
在源文件A1.c中调用A2.c 中的函数有两种方法:
1、在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};。
在A1.c中:在文件前头增加一行:void A2();就可以了。
2、把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了。
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
(5)c语言引用外部c文件扩展阅读:
1、一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
2、把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3、再在其他的main.c文件开头添加#include "a.h"。
⑥ C语言如何使用外部文件中的函数
1.
请使用预编译指令
#include。加入外部文件,就可以使用外部文件的函数了。
#include放在代码文件头,用于告诉编译器,文件中包含的头文件,属于预处理文件的一部分
。
语法为:
#include
<iostream.h>
(这句是程序编译时搜索系统目录文件)
#include
“HName.h"
(这句是程序编译时搜索当前项目的文件)
2.
例如:
//函数实现 a.c文件:
int add(int x, int y){
return x+y;
}
//主文件 main.c文件:
#include <stdio.h>
#include "a.c" //引入外部函数
int main(){
int i;
i = add(1,2);
printf("%d",i);
return 0;
}
⑦ C语言中,是否可以调用其它文件的函数
可以调用。
一、从一个源文件里调用另一个源文件的函数。在源文件A1.c中调用A2.c 中的函数有两种方法:
1、在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型(声明)就可以了,例如:
在A2.c中:有函数void A2(){...};。
在A1.c中:在文件前头增加一行:void A2();就可以了。
2、把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了。
以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
二、编写头文件:
1、一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
在.h文件中:
#ifndef __A_H_
#define __A_H_
#include<stdio.h>
void trans2(double B) ;
double trans1() ;
#endif
2、把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.
c往往会include对应的.h,这样就不需要为声明和调用顺序而发愁了。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3、再在其他的main.c文件开头添加#include "a.h"。
(7)c语言引用外部c文件扩展阅读:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#include<math.h>//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。
⑧ c语言如何 调用外部程序
调用外部程序接口
方法1.
Process p=Runtime.getRuntime.exec("cmd")(最常用)
方法2.
Process p=new ProcessBuilder(cmd).start()
但是一般方法一比较常用, 下面我们介绍下方法一中关于抽象Process类的常用函数
//向对应程序中输入数据
();
//获得对应程序的输出流(没写错)
();
//获得程序的错误提示
();
//等待程序执行完成,返回0正常,返回非0失败
abstractpublicintwaitFor()throwsInterruptedException;
//获得程序退出值,0正常退出,非0则异常
abstractpublicintexitValue();
//销毁进程
abstractpublicvoiddestroy();
其中前3个函数用的最多