👨🏼‍💻개발/C | C++

C/C++ - DLL 만들기, DLL 사용하기 (GCC)

Janger 2023. 3. 23. 09:01
728x90

 

my_dll.c (DLL 만들기)

 

#include <windows.h>

void func() {
    system("start www.google.com");
}

 

GCC DLL 빌드

 

gcc -shared my_dll.dll -o my_dll.c

 

run.c (DLL 사용하기)

 

#include <stdio.h>
#include <windows.h>

typedef void(*dll_func)();

int main(){

    HINSTANCE hDLL = LoadLibrary("my_dll.dll");
    if(hDLL == NULL){
        printf("Failed to load DLL\n");
        return 1;
    }

    dll_func func = (dll_func)GetProcAddress(hDLL, "func");
    if(func == NULL){
        printf("Failed to get function address\n");
        return 1;
    }

    (*func)();

    return 0;
}

 

 


 

#include "windows.h"

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    system("calc.exe");
  
    return TRUE;
}

 

 

gcc -shared test.dll -o test.c

 

 

rundll32 test.dll ANYTHING~
728x90