在C++代码中使用 K&R 风格的 C 函数
Using K&R-style C functions in C++ code
我试图在VS2010的vc++项目中使用oncrpc-windows项目。oncrpc在svc.h文件中导出函数时不带任何参数,但实际上这些函数都有参数。例如,头文件导出
#define DllExport __declspec( dllexport )
...
DllExport SVCXPRT *svcudp_create();
但是实现文件包含
SVCXPRT * svcudp_create(sock)
int sock;
{
return(svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
}
如果我尝试创建使用导出函数的C文件,那么一切都好,代码编译成功。问题是我不能在我的CPP代码中使用导出的函数,编译器停止使用以下消息
错误C2660: 'svcudp_create':函数不接受1个参数
我试图使用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风格函数调用验证签名
- 迫使QbyTearray将通过的C风格阵列拥有其构造函数
- C++风格的构造函数调用
- 我正在收到错误的“ list :: ShowList”:功能风格的初始化器似乎是我的CPP文件中的函数定义'
- C++函数和方法风格
- 如何在C#中实现C++风格的函数指针?,不使用代理
- C++11风格的SFINAE和模板实例化上的函数可见性
- 使用 lambda 函数定义非常小的帮助程序函数是一种好风格吗?
- K&R 风格的函数定义使用 g++ 编译
- C++宏中的函数式编程风格:这是否记录在任何地方
- 创建过于简单的函数是一种糟糕的风格吗
- 如何从C++中最好地调用具有C99风格数组函数签名的函数
- 什么时候无状态类函子可以用来代替c风格的函数
- 比较两个C风格字符串的正确函数是什么
- 如何让c风格的字符串函数工作
- 如何在c++中编写一个调试宏来打印函数的所有参数(strace风格)
- c++中的构造函数调用或函数风格强制转换
- c++枚举类型可以作为函数调用吗?或者它只是一种不同风格的类型转换
- c++中C99风格的变长数组函数签名
- 使用更小的函数来分解长方法-正确的风格/如何声明