hey guys (:
I use the wizard for creating a static library.
In the main.c file there is a little sample which I compiled:
int SampleAddInt(int i1, int i2)
{
return i1 + i2;
}
// A function doing nothing ;)
void SampleFunction1()
{
// insert code here
}
// A function always returning zero
int SampleFunction2()
{
// insert code here
return 0;
}I tried it and it worked ( I got a .a file ) But when I want to use it in a project like:
#include <iostream>
using namespace std;
int main()
{
cout << SampleAddInt ( 12, 14 ) << endl ;
}I get an error:
Quote'SimpleAddInt' was not declared in this scope
I linked the .a file, but it didn“t work. :S
Can somebody help me ?
Yes, read/learn what a header file is/does.
Quote from: oBFusCATed on February 09, 2010, 11:20:25 PM
Yes, read/learn what a header file is/does.
And how to mix C and C++ sources/libs.
Quote from: oBFusCATed on February 09, 2010, 11:20:25 PM
Yes, read/learn what a header file is/does.
I know what header files do.
Quote from: jens on February 09, 2010, 11:24:45 PM
And how to mix C and C++ sources/libs.
Do you mean extern "C" ?
Can you be more specific ? :(
I have a guess:
#ifndef MAIN_H
#define MAIN_H
extern "C"
int SampleAddInt(int, int ) ;
#endif
It works, but is it that what you meant ?
Quote
#ifdef __cplusplus
extern "C" {
#endif
at the top of the header and
Quote
#ifdef __cplusplus
}
#endif
at the bottom.
So you can use the same header with C and C++-sources.
thanks jens for your help :)