C++调用C函数
2012-06-21 09:48
127 查看
我新建了个MFC工程,包含了MD5的C文件,并且按照__cdecl编译成C代码,但是我在工程主对话框的.cpp文件调用时总出现如下错误,用C的时候是没有的:
error C2660: “MD5Init”: 函数不接受 1 个参数
error C2660: “MD5Update”: 函数不接受 3 个参数
error C2660: “MD5Final”: 函数不接受 2 个参数
extern "C"{ #include
"md5.h"};
... MD5Init( &context ); MD5Update(
&context, szInput, nInLen ); MD5Final( szOutput,
&context );
/*1.把函数声明改成(md5.h中的)*/
void MD5Init (MD5_CTX
*);
void MD5Update (MD5_CTX
*, unsigned
char
*, unsigned
int);
void MD5Final (unsigned
char [16], MD5_CTX
*);
/*2.在md5c.c右键 ---> 属性 ---> C/C++ ---> 高级 ---> 调用约定:与工程相同(我这里是__stdcall(/GZ)),编译为:C代码。 如果调用约定与工程的不相同,只能用汇编调用了。 还有预编译头,我这里为:不使用预编译头*//*
3.包含头文件时用extern "C"*/extern
"C"{ #include
"md5.h"};
//4.这样就可以使用了: MD5Init(&context); MD5Update(&context,
(unsigned char
*)szName, dtLength); MD5Final(szHash,
&context);
转自:http://topic.csdn.net/u/20120621/08/52bc65dd-ce03-41ac-9a77-2b50012ce091.html?seed=1896487601&r=78920926#r_78920926
error C2660: “MD5Init”: 函数不接受 1 个参数
error C2660: “MD5Update”: 函数不接受 3 个参数
error C2660: “MD5Final”: 函数不接受 2 个参数
extern "C"{ #include
"md5.h"};
... MD5Init( &context ); MD5Update(
&context, szInput, nInLen ); MD5Final( szOutput,
&context );
/*1.把函数声明改成(md5.h中的)*/
void MD5Init (MD5_CTX
*);
void MD5Update (MD5_CTX
*, unsigned
char
*, unsigned
int);
void MD5Final (unsigned
char [16], MD5_CTX
*);
/*2.在md5c.c右键 ---> 属性 ---> C/C++ ---> 高级 ---> 调用约定:与工程相同(我这里是__stdcall(/GZ)),编译为:C代码。 如果调用约定与工程的不相同,只能用汇编调用了。 还有预编译头,我这里为:不使用预编译头*//*
3.包含头文件时用extern "C"*/extern
"C"{ #include
"md5.h"};
//4.这样就可以使用了: MD5Init(&context); MD5Update(&context,
(unsigned char
*)szName, dtLength); MD5Final(szHash,
&context);
转自:http://topic.csdn.net/u/20120621/08/52bc65dd-ce03-41ac-9a77-2b50012ce091.html?seed=1896487601&r=78920926#r_78920926
相关文章推荐
- C++调用C函数
- C中调用C++函数与C++中调用C函数
- C++ 调用C函数
- C函数和C++函数相互调用的问题(★firecat推荐★)
- C++调用C函数问题
- C++程序调用C函数
- C++程序调用已经被编译后的C函数
- [ASM C/C++] C函数调用分析
- extern "C"与C++中的C函数调用(1)
- C++调用C函数
- C++调用C函数与Extern "C"
- c++调用c函数
- C++中调用C函数
- c++调用c函数
- C函数的dll,C++静态调用以及C++函数的C++静态调用。
- C++调用C函数
- C++调用C函数,为什么要加extern "C"?
- extern "C"与C++中的C函数调用(2)
- 在Anjuta 的C++项目中调用自定义C函数:undefined reference xxxxxx
- c++ 调用c函数