Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Platform Independent Coding - DLLs and SOs

, 28 Mar 2007
If you want to write platform independent code, just read through the following article.
platform_independant_demo.zip
platform_independant_demo
plat_ind
cygwin_release
add.so
plat_ind.exe
documentation
documentation.pdf
Makefile
Release
add.dll
plat_ind.exe
plat_ind_dll
cygwin_release
add.dll
Makefile
Release
add.dll
platform_independant_src.zip
platform_independant_src
plat_ind
documentation
documentation.pdf
plat_ind_dll
//Boby Thomas - march 2006

#ifndef os_call_h
#define os_call_h

#if defined(_MSC_VER) // Microsoft compiler
	#include <windows.h>
#elif defined(__GNUC__) // GNU compiler
	#include <dlfcn.h>
#else
#error define your copiler
#endif

#include<string>
/*
#define RTLD_LAZY   1
#define RTLD_NOW    2
#define RTLD_GLOBAL 4
*/

void* LoadSharedLibrary(char *pcDllname, int iMode = 2)
{

	std::string sDllName = pcDllname;
	#if defined(_MSC_VER) // Microsoft compiler
	sDllName += ".dll";
		return (void*)LoadLibrary(pcDllname);
	#elif defined(__GNUC__) // GNU compiler
	sDllName += ".so";
		return dlopen(sDllName.c_str(),iMode);
	#endif


}
void *GetFunction(void *Lib, char *Fnname)
{
#if defined(_MSC_VER) // Microsoft compiler
	return (void*)GetProcAddress((HINSTANCE)Lib,Fnname);
#elif defined(__GNUC__) // GNU compiler
	return dlsym(Lib,Fnname);
#endif
}

bool FreeSharedLibrary(void *hDLL)
{
#if defined(_MSC_VER) // Microsoft compiler
	return FreeLibrary((HINSTANCE)hDLL);
#elif defined(__GNUC__) // GNU compiler
	return dlclose(hDLL);
#endif
}


#endif //os_call_h

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Boby Thomas P
Software Developer (Senior) DWS
Australia Australia

| Advertise | Privacy | Mobile
Web04 | 2.8.140922.1 | Last Updated 28 Mar 2007
Article Copyright 2006 by Boby Thomas P
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid