Witam.

Potrafie stworzyc prosta biblioteke i to co potrzebuje w WinApi.

Problem mam w tym, ze nie potrafie umiescic funkcji wykorzystujacej WinApi w DLL prawidlowo (chodzi mi o wywolanie okna) Moglby mi ktos to przyblizyc ? Pozdraiwam

Mam cos takiego w DEV na razie. msg box dziala jak wlacze, natomiast okno sie nie wyswietla.

/* Replace "dll.h" with the name of your header */
#include "dll.h"
#include <windows.h>

DllClass::DllClass()
{

}


DllClass::~DllClass ()
{

}



    double DLLIMPORT kwadrat( double liczba ){
        
      
    return(liczba*liczba);       
    };

HINSTANCE x;
HWND hwnd;

int APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
                       DWORD reason        /* Reason this function is being called. */ ,
                       LPVOID reserved     /* Not used. */ )
{
                         
                              x = hInst;
                       
    switch (reason)
    {
      case DLL_PROCESS_ATTACH:
           
          
           
        break;

      case DLL_PROCESS_DETACH:
        break;

      case DLL_THREAD_ATTACH:
           
              
        break;

      case DLL_THREAD_DETACH:
        break;
    }

    /* Returns TRUE on success, FALSE on failure */
    return 1;
}

LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
    case WM_CLOSE:
        DestroyWindow( hwnd );
        break;
       
    case WM_DESTROY:
        PostQuitMessage( 0 );
        break;
        
        default:
		return DefWindowProc( hwnd, msg, wParam, lParam );
    }
}


int okno(  )
{
   
   //MessageBox( NULL, "TEXT", "main", MB_OK | MB_ICONWARNING | MB_DEFBUTTON2 | MB_OKCANCEL );
   

    WNDCLASSEX wc;
   
   HWND hWin = GetActiveWindow();
  // HINSTANCE hInstance = GetWindowLong( hWin, GWL_HINSTANCE);
   
    wc.cbSize = sizeof( WNDCLASSEX );
    wc.style = 0;
    wc.lpfnWndProc = WndProc; //obsluga komunikatow
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = (HINSTANCE)GetWindowLong( hWin, GWL_HINSTANCE);
    wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
    wc.hCursor = LoadCursor( NULL, IDC_ARROW );
    wc.hbrBackground =( HBRUSH )( COLOR_WINDOW + 1 ); //kolor tla
    wc.lpszMenuName = NULL;
    wc.lpszClassName = "Nazwa_Klasy";
    wc.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
	wc.style = CS_DBLCLKS;
   

    if( !RegisterClassEx( & wc ) )
    {

        return 2;
    }
   
    // TWORZENIE OKNA
       
    hwnd = CreateWindowEx( WS_EX_CLIENTEDGE, "Nazwa_Klasy", "Nazwa_Okna", WS_OVERLAPPEDWINDOW,
    CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, x, NULL );

    if( hwnd == NULL ) return 3;
    
    ShowWindow( hwnd, 1 ); // Pokaż okienko...
    UpdateWindow( hwnd );
}