Hi,
I have a written code for Windows, and now am trying to port to Linux, but not sure if it is possible or not.
"ICantFindFile.txt" is created, which means, the file couldn't be loaded. Am I picking the wrong file?
I am very new to Linux, so please bare with me if my question is too low-level.
This is the compilation output:
Output:
build/release-linux-ppc64/ioq3ded.ppc64
build/release-linux-ppc64/ioquake3.ppc64
build/release-linux-ppc64/baseq3/cgameppc64.so
build/release-linux-ppc64/baseq3/qagameppc64.so
build/release-linux-ppc64/baseq3/uippc64.so
build/release-linux-ppc64/missionpack/cgameppc64.so
build/release-linux-ppc64/missionpack/qagameppc64.so
build/release-linux-ppc64/missionpack/uippc64.so
make[2]: Entering directory `/r/home7/XXX/ioquake3'
make[2]: `build/release-linux-ppc64/ioq3ded.ppc64' is up to date.
make[2]: `build/release-linux-ppc64/ioquake3.ppc64' is up to date.
LD build/release-linux-ppc64/baseq3/cgameppc64.so
LD build/release-linux-ppc64/baseq3/qagameppc64.so
LD build/release-linux-ppc64/baseq3/uippc64.so
LD build/release-linux-ppc64/missionpack/cgameppc64.so
LD build/release-linux-ppc64/missionpack/qagameppc64.so
LD build/release-linux-ppc64/missionpack/uippc64.so
This is the code for Windows:
__declspec(dllexport) void UnLinkLinkroutingcache( void )
{
}
#include<windows.h>
typedef void (* fUnLinkLinkroutingcache_t)( void );
void fUnLinkLinkroutingcache( fUnLinkLinkroutingcache_t pUnLinkLinkroutingcache )
{
pUnLinkLinkroutingcache(); return;
}
fUnLinkLinkroutingcache_t pUnLinkLinkroutingcache;
void callUnlinkLink(void)
{
HMODULE hLib;
hLib = LoadLibrary(TEXT("ioquake3.exe"));
if (hLib == NULL)
{
return 0;
}
pUnLinkLinkroutingcache = (fUnLinkLinkroutingcache_t)GetProcAddress(hLib, TEXT("UnLinkLinkroutingcache"));
if ( pUnLinkLinkroutingcache == NULL)
{
return 0;
}
fUnLinkLinkroutingcache(pUnLinkLinkroutingcache);
}
I tried to port this code to Linux, but I can't seem to load the exe.
extern void UnLinkLinkroutingcache( void )
void callUnlinkLink(void)
{
void* handle;
void (*initializer)(void);
FILE *fp;
fp = fopen("HereIsMe.txt", "a");
if( fp != NULL )
{
fprintf(fp, "%d", 1 );
fprintf(fp, "\n" );
}
fclose(fp);
handle = dlopen("./ioq3ded.ppc64", RTLD_LAZY);
if(handle == NULL) {
fp = fopen("ICantFindFile.txt", "a");
if( fp != NULL )
{
fprintf(fp, "%d", 1 );
fprintf(fp, "\n" );
}
fclose(fp);
exit(1);return;
} else {
initializer = dlsym(handle,"UnLinkLinkroutingcache");
if(initializer == NULL) {
fp = fopen("ICantFindFfunction.txt", "a");
if( fp != NULL )
{
fprintf(fp, "%d", 1 );
fprintf(fp, "\n" );
}
fclose(fp);
exit(1);return;
} else {
(*initializer)();
}
}
}