Files
CMake/Tests/RunCMake/AutoExportDll/say.cxx
T
Malcolm Bechard f513781bc5 WINDOWS_EXPORT_ALL_SYMBOLS: Export vftable symbol
`pybind11` requires access to this symbol to link in some cases.
Include this symbol when generating automatic exports via
`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS`.

Fixes: #24406
2023-02-14 09:11:45 -05:00

61 lines
893 B
C++

#include <stdio.h>
#include "hello.h"
#ifdef _MSC_VER
# include "windows.h"
#else
# define WINAPI
#endif
extern "C" {
// test __cdecl stuff
int WINAPI foo();
// test regular C
int bar();
int objlib();
void justnop();
}
// test c++ functions
// forward declare hello, world, cliFunction and nonCliFunction
void hello();
void world();
void cliFunction();
void nonCliFunction();
// test exports for executable target
extern "C" {
int own_auto_export_function(int i)
{
return i + 1;
}
}
int main()
{
// test static data (needs declspec to work)
Hello::Data = 120;
Hello h;
h.real();
hello();
printf(" ");
world();
printf("\n");
foo();
printf("\n");
bar();
objlib();
printf("\n");
cliFunction();
printf("\n");
nonCliFunction();
printf("\n");
#ifdef HAS_JUSTNOP
justnop();
#endif
#ifdef HELLO_VFTABLE
HelloVFTable helloVFTable(1);
#endif
return 0;
}