algorytm.org

Implementacja w C/C++

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Wartość bezwzględna - Implementacja w C/C++
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Nikodem Solarz, 12 marca 2013 20:41
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

wart_bezwzgledna_dll.cxx:
///////////////////////////////////////////
// Implementacja wartości bezwzględnej
// C++ DLL
// by Narzew (12.03.2013)
// dla algorytm.org
///////////////////////////////////////////

///////////////////////////////////////////
// Testowano na środowisku Code Blocks 12.11
// używając GNU GCC++ Compiler na Win XP
///////////////////////////////////////////

///////////////////////////////////////////
//Użycie zewnętrzne (przykład w Ruby) :
//$wartosc_bezwzgledna = Win32API.new('NRGSS', 'wartosc_bezwzgledna','i','i')
//$wartosc_bezwzgledna.call(x)
///////////////////////////////////////////

///////////////////////////////////////////
// Plik : Main.cpp
///////////////////////////////////////////

int DLL_EXPORT wartosc_bezwzgledna(int x)
{
    if (x >= 0)
    {
        return x;
    } else {
    return -x;
    }
}

extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    switch (fdwReason)
    {
        case DLL_PROCESS_ATTACH:
            // attach to process
            // return FALSE to fail DLL load
            break;

        case DLL_PROCESS_DETACH:
            // detach from process
            break;

        case DLL_THREAD_ATTACH:
            // attach to thread
            break;

        case DLL_THREAD_DETACH:
            // detach from thread
            break;
    }
    return TRUE; // succesful
}

///////////////////////////////////////////
// Plik : Main.h
///////////////////////////////////////////

#ifndef __MAIN_H__
#define __MAIN_H__

#include <windows.h>

#ifdef BUILD_DLL
    #define DLL_EXPORT __declspec(dllexport)
#else
    #define DLL_EXPORT __declspec(dllimport)
#endif


#ifdef __cplusplus
extern "C"
{
#endif

int DLL_EXPORT wartosc_bezwzgledna(int x);

#ifdef __cplusplus
}
#endif

#endif // __MAIN_H__
Dodaj komentarz