c语言如何修改库函数 c语言修改程序代码

C语言:如何自己做库函数?

简单的一个例子,但是基本的程序编译的思想都在里面了,具体的需要你自己体会和查资料

成都创新互联公司是一家专注于网站制作、成都网站设计与策划设计,崆峒网站建设哪家好?成都创新互联公司做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:崆峒等地区。崆峒做网站价格咨询:18980820575

跟着下面的步骤走

------------------------

第一步:我的电脑-属性-高级-环境变量

添加3个变量

1.名字:path 值:vc的安装目录里面包含cl.exe的bin目录路径+";"+vc目录下包含mspdb80.dll的目录的路径

比如我的是D:\Program Files\Microsoft Visual Studio 8\VC\bin;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;

2.名字:include 值:vc安装目录下的include目录,主要是为了找到头文件,我的是D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;

3.名字:lib 值:vc目录下包含库文件的目录路径

我的是D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;

第二步:需要下面两个文件

//-------------libdemo.c

#include stdio.h

void lib_func()

{

printf("this routine in lib\n");

}

//------------main.c

void lib_func();

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

{

lib_func();

}

第三步:命令

cl /c libdemo.c '编译libdemo.c 生成libdemo.obj

lib libdemo.obj '生成libdemo.lib 库文件

cl /c main.c '编译main.c

link main.obj libdemo.lib '生成main.exe

---------------------------------------------------

呵呵 加点东西,参看4楼的建议,在做个dll,COM组件就不做了,有点复杂了

1。把libdemo.c 稍微改下

//-------------libdemo.c

#include stdio.h

__declspec (dllexport) void lib_func()

{

printf("this routine in lib\n");

}

2。命令

cl /c libdemo.c main.c

link libdemo.obj /dll '生成libdemo.lib

link main.obj libdemo.lib

C语言中重新实现库函数

fgets是从文件读取,getchar是从输入读取,两个还是有区别的

怀疑是gets

如果一定要用fgets的话,那么可以先用freopen重定向输入,来使fgets和getchar的定向相同

以下用gets实现或者被实现

含测试函数main

#include stdio.h

int str_to_int(char *str)

{

int sign = 1;

int ret = 0;

char *p;

p = str;

if(*p == '+') p++;

else if(*p == '-') sign = -1, p ++;

while(*p)

{

if(*p = '0' *p = '9')

ret = ret * 10 + (*p - '0');

else break;

p ++;

}

return sign * ret;

}

int get_int_with_getchar()

{

char a[20] = {0};

int i = 0;

while(i19)

{

a[i] = getchar();

if(a[i] == '\n')

break;

i ++;

}

a[i] = 0;

return str_to_int(a);

}

int get_int_with_gets()

{

char a[20] = {0};

gets(a);

return str_to_int(a);

}

void gets_with_getchar(char *str)

{

int i = 0;

if(str == NULL) return;

do

{

str[i] = getchar();

}while(str[i++] != '\n' );

}

char *do_strchr(char *src, const char c)

{

char *p = src;

while(*p *p!= c) p ++;

if(*p != c) return NULL;

return p;

}

int do_isdigit(char c)

{

return c = '9' c = '0';

}

int do_isalpha(char c)

{

return (c = 'Z' c = 'A') || (c = 'z' c = 'a');

}

int main()

{

int a;

char test[100] ;

a = get_int_with_getchar();

printf("get_int_with_getchar = %d\n", a);

a = get_int_with_gets();

printf("get_int_with_gets = %d\n", a);

gets_with_getchar(test);

printf("gets_with_getchar = %s\n", test);

printf("do_strchr %s %s\n", do_strchr(test, 'a'), do_strchr(test, 'b'));

printf("do_isdigit = (%d,%d) \n", do_isdigit('1'), do_isdigit('a'));

printf("do_isalpha = (%d,%d) \n", do_isalpha('1'), do_isalpha('a'));

}

急!高分,高手进!如何修改c语言库函数!

不能,为了系统的可移植性,C语言系统函数是无法更改的,只能定义函数库没有的函数。


当前名称:c语言如何修改库函数 c语言修改程序代码
本文链接:http://scyanting.com/article/ddgihoj.html