I think im doing it like casey but can't find out why it won't let me open the .dll file.
I am running the exe from its directory, and i see that the 'newDLL.dll' IS created. Problem is that i just can't compile it during runtime.
None of the 'printf("fail");' is generated aswell which should suggest that everythings is working fine right?
main:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | HMODULE gameObjectDLL = LoadLibrary("dll.dll"); PFNCHANGEX *changeX; int loadTime = 120; int currLoadTime = loadTime; while(!glfwWindowShouldClose(window) && running) { if(currLoadTime++ == loadTime) { if(gameObjectDLL) { if(!FreeLibrary(gameObjectDLL)) { printf("Freeding library Failed\n"); } } if(!CopyFile("dll.dll", "newDLL.dll", FALSE)) { printf("Copy DLL Failed\n"); } gameObjectDLL = LoadLibrary("newDLL.dll"); if(!gameObjectDLL) { printf("DLL LOAD FAIL\n"); } changeX = (PFNCHANGEX*)GetProcAddress(gameObjectDLL, "ChangeX"); if(!changeX) { printf("GetProc FAIL\n"); } currLoadTime = 0; } } |
build.bat:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @echo off pushd ..\build SET includePath=C:\Code\OpenGL\BoardGame\include SET CJGLPath=C:\Code\OpenGL\CJGL cl -nologo ..\src\include\dll.cpp -LD cl -nologo /I %includePath% /I %CJGLPath% /F 500000000 /EHsc /MD -nologo -Zi -wd4477 -wd4005 ..\src\BoardGame.cpp user32.lib gdi32.lib opengl32.lib glfw3.lib shell32.lib popd copy /Y shader\vertexShader.glsl ..\build\shader copy /Y shader\fragmentShader.glsl ..\build\shader copy /Y shader\textFS.glsl ..\build\shader copy /Y shader\solidColorFS.glsl ..\build\shader del *.un~ *.cpp~ *.h~ *.bat~ *.glsl~ *.txt *.txt~ include\*.h~ include\*.un~ include\*.h~~ ..\assets\*.un~ ..\assets\*.c~ |