Change static

This commit is contained in:
Edwin Noorlander 2025-03-17 17:24:00 +01:00
parent c89d6bb4fa
commit 4a8623fdfc
4 changed files with 45 additions and 30 deletions

View File

@ -1,5 +1,5 @@
# Minimum required version of CMake # Minimum required version of CMake
cmake_minimum_required(VERSION 3.28) cmake_minimum_required(VERSION 3.10)
# Project setup # Project setup
project(main VERSION 1.0.0 project(main VERSION 1.0.0
@ -8,11 +8,13 @@ project(main VERSION 1.0.0
LANGUAGES CXX) LANGUAGES CXX)
# Set C++ standard # Set C++ standard
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_COMPILER "/usr/bin/gpp") # set(CMAKE_CXX_COMPILER "/usr/bin/gpp")
set(CMAKE_CXX_COMPILER "c++")
set(BIN_STATIC true)
set(BIN_STATIC false)
# Set binary name # Set binary name
set(BIN_NAME "test") set(BIN_NAME "test")
@ -41,6 +43,7 @@ if(BIN_STATIC)
add_compile_definitions(SDL_STATIC) add_compile_definitions(SDL_STATIC)
endif() endif()
# List of subprojects to include (e.g., external libraries or modules) # List of subprojects to include (e.g., external libraries or modules)
set(SubProjects set(SubProjects
myDynamicLibrary # Example subproject, replace with actual subprojects myDynamicLibrary # Example subproject, replace with actual subprojects

View File

@ -6,10 +6,10 @@ using namespace std;
string myDynamicLibrary::sayHelloDynamic() string myDynamicLibrary::sayHelloDynamic()
{ {
std::string text = "You have given two numbers a "; string text = "You have given two numbers a ";
text += std::to_string(myDynamicLibrary::a); text += to_string(myDynamicLibrary::a);
text += " and number b "; text += " and number b ";
text += std::to_string(myDynamicLibrary::b); text += to_string(myDynamicLibrary::b);
text += "."; text += ".";
return text; return text;
@ -23,6 +23,9 @@ int myDynamicLibrary::multiply(){
return myDynamicLibrary::a * myDynamicLibrary::b; return myDynamicLibrary::a * myDynamicLibrary::b;
} }
int myDynamicLibrary::devide(){ double myDynamicLibrary::devide() {
return myDynamicLibrary::a / myDynamicLibrary::b; if (myDynamicLibrary::b == 0) {
throw std::runtime_error("Cannot divide by zero!");
}
return static_cast<double>(myDynamicLibrary::a) / myDynamicLibrary::b;
} }

View File

@ -13,7 +13,7 @@ class myDynamicLibrary{
std::string text(); std::string text();
std::string sayHelloDynamic(); std::string sayHelloDynamic();
int multiply(); int multiply();
int devide(); double devide();
}; };

View File

@ -13,11 +13,11 @@ const int WINDOW_HEIGHT = 600;
int main(int argc, char* argv[]) { int main(int argc, char* argv[]) {
// SDL en TTF initialiseren // SDL en TTF initialiseren
if (SDL_Init(SDL_INIT_VIDEO) < 0) { if (SDL_Init(SDL_INIT_VIDEO) < 0) {
std::cerr << "SDL kon niet initialiseren: " << SDL_GetError() << std::endl; cerr << "SDL kon niet initialiseren: " << SDL_GetError() << endl;
return 1; return 1;
} }
if (TTF_Init() == -1) { if (TTF_Init() == -1) {
std::cerr << "TTF kon niet initialiseren: " << TTF_GetError() << std::endl; cerr << "TTF kon niet initialiseren: " << TTF_GetError() << endl;
SDL_Quit(); SDL_Quit();
return 1; return 1;
} }
@ -25,7 +25,7 @@ int main(int argc, char* argv[]) {
// SDL Window en Renderer aanmaken // SDL Window en Renderer aanmaken
SDL_Window* window = SDL_CreateWindow("SDL2 Demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN); SDL_Window* window = SDL_CreateWindow("SDL2 Demo", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN);
if (!window) { if (!window) {
std::cerr << "Kan window niet maken: " << SDL_GetError() << std::endl; cerr << "Kan window niet maken: " << SDL_GetError() << endl;
TTF_Quit(); TTF_Quit();
SDL_Quit(); SDL_Quit();
return 1; return 1;
@ -33,7 +33,7 @@ int main(int argc, char* argv[]) {
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (!renderer) { if (!renderer) {
std::cerr << "Kan renderer niet maken: " << SDL_GetError() << std::endl; cerr << "Kan renderer niet maken: " << SDL_GetError() << endl;
SDL_DestroyWindow(window); SDL_DestroyWindow(window);
TTF_Quit(); TTF_Quit();
SDL_Quit(); SDL_Quit();
@ -41,9 +41,9 @@ int main(int argc, char* argv[]) {
} }
// Laad een font // Laad een font
TTF_Font* font = TTF_OpenFont("assets/OpenSans-Regular.ttf", 24); TTF_Font* font = TTF_OpenFont("../include/Open_Sans/static/OpenSans-Regular.ttf", 24);
if (!font) { if (!font) {
std::cerr << "Kan font niet laden: " << TTF_GetError() << std::endl; cerr << "Kan font niet laden: " << TTF_GetError() << endl;
SDL_DestroyRenderer(renderer); SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window); SDL_DestroyWindow(window);
TTF_Quit(); TTF_Quit();
@ -56,12 +56,21 @@ int main(int argc, char* argv[]) {
myObj.a = 50; myObj.a = 50;
myObj.b = 10; myObj.b = 10;
std::string text_string = myObj.sayHelloDynamic(); std::string text_string = myObj.sayHelloDynamic();
const char *text = text_string.c_str();
const char* text = &text_string[0];
SDL_Surface* textSurface = TTF_RenderText_Solid(font, text, textColor); SDL_Surface* textSurface = TTF_RenderText_Solid(font, text, textColor);
if (!textSurface) {
cerr << "Kan text surface niet maken: " << endl;
return 1;
}
SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface); SDL_Texture* textTexture = SDL_CreateTextureFromSurface(renderer, textSurface);
if (!textTexture) {
cerr << "Kan texture niet maken: " << endl;
return 1;
}
SDL_Rect textRect = {WINDOW_WIDTH / 2 - textSurface->w / 2, WINDOW_HEIGHT / 2 - textSurface->h / 2, textSurface->w, textSurface->h}; SDL_Rect textRect = {WINDOW_WIDTH / 2 - textSurface->w / 2, WINDOW_HEIGHT / 2 - textSurface->h / 2, textSurface->w, textSurface->h};
SDL_FreeSurface(textSurface);
bool running = true; bool running = true;
SDL_Event event; SDL_Event event;