gpt4 book ai didi

c++ - 在 C++ 代码中使用 K&R 风格的 C 函数

转载 作者:太空狗 更新时间:2023-10-29 23:17:56 33 4
gpt4 key购买 nike

我正在尝试使用 oncrpc-windows我在 VS2010 中的 VC++ 项目中的项目。 svc.h 中的 oncrpc 导出函数文件没有任何参数,但实际上函数有参数。比如头文件export

#define DllExport   __declspec( dllexport ) 
...
DllExport SVCXPRT *svcudp_create();

但是the implementation file包含

SVCXPRT * svcudp_create(sock)
int sock;
{

return(svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
}

如果我尝试创建使用导出函数的 C 文件,那么一切正常,代码编译成功。问题是我无法在我的 CPP 代码中使用导出的函数,编译器停止并显示以下消息

error C2660: 'svcudp_create' : function does not take 1 arguments

我尝试使用 extern "C",但没有用。我想知道如何在我的 VC++ 项目中使用导出的函数?真的需要自己写一个正确签名的头文件吗?

最佳答案

在编译 .cc 或 .cpp 文件之前,您需要将任何使用 K&R 样式语法的 .c 文件编译为目标文件。这应该在 MakeFile 中完成。

例子:

PNAME = "ProjectName"
PROGRAM_FILES = program.cpp program.h

svc.o: svc.c svc.h
gcc -c $< -o $@
program.o: $(PROGRAM_FILES)
gcc -c $< -o $@
all: svc.o program.o
gcc $< -o $(PNAME)
clean:
-rm -f *.o $(PNAME)

关于c++ - 在 C++ 代码中使用 K&R 风格的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15921141/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com