[C++] Problem mit SetDllDirectoryA
Ohai Community ich hab momentan ein kleines Problem mit dieser Funktion.
Code:
#include <Windows.h>
extern BOOL WINAPI SetDllDirectoryA(LPCTSTR lpathName);
int main()
{
SetDllDirectoryA("C:\\test");
return 0;
}
Compiler: Dev C++
Fehlermeldung:
Code:
[Linker error] undefined reference to `_Z16SetDllDirectoryAPKc@4'
ld returned 1 exit status
Wäre nett, wenn mir jemand sagen könnte, wo genau mein Fehler liegt :D
MfG
AW: [C++] Problem mit SetDllDirectoryA
Code:
// dll.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <Windows.h>
extern BOOL WINAPI SetDllDirectoryA(LPCTSTR lpathName);
int _tmain(int argc, _TCHAR* argv[])
{
SetDllDirectoryA("C:\\DLLHell");
return 0;
}
Code:
The program '[6028] dll.exe: Native' has exited with code 0 (0x0).
Funktioniert unter VC++ 2010 Express zumindest.
AW: [C++] Problem mit SetDllDirectoryA
Funktionieren die anderen WinAPIs (z.B. CreateFileA())?
Ansonsten kann ich dir nur sagen, dass du die Funktion selber laden sollst, was ja nicht so toll ist ^^.
Code:
SetDllDirectoryA SetDllDirectory = (SetDllDirectoryA)GetProcAddress(LoadLibrary("kernel32.dll"), "SetDllDirectoryA");
PS: Sollten andere Funktionen aus der Kernel32.dll auch nicht funktionieren, dann schau ob du bei den Libraries die "Kernel32.lib" dabei hast.
AW: [C++] Problem mit SetDllDirectoryA
Also CreateFileA() geht ohne Probleme.
Anscheinend hat hat etwas mit der kernel32.dll zu tun.
Trotzdem danke für die Hilfe :)
AW: [C++] Problem mit SetDllDirectoryA
Leider etwas spät, aber besser als nie, hatte heute Nacht leider die Zugangsdaten für das Board nicht mehr gefunden.
Der Grund, warum du den Fehler vom Linker bekommst, ist in diesem Beitrag hier gut beschrieben:http://ubuntuforums.org/showpost.php...58&postcount=6
Du musst also einfach aus dem
Code:
extern BOOL WINAPI SetDllDirectoryA(LPCTSTR lpathName);
ein
Code:
extern "C" BOOL WINAPI SetDllDirectoryA(LPCTSTR lpathName);
machen und dann funktioniert es.