Seite 1 von 2
					
				CreateHardLink_() is not a function, an array or a linked...
				Verfasst: 31.12.2005 13:21
				von uweb
				Hi,
funktiert nicht. 
Hat mir jemand einen Tipp wie ich es doch noch zum laufen bringe ?
http://msdn.microsoft.com/library/defau ... rdlink.asp 
			 
			
					
				
				Verfasst: 31.12.2005 14:04
				von Andre
				Vermutlich wird der WinAPI-Befehl (bisher) nicht nativ unterstützt.
Wirst Du wohl über den Umweg mit LoadLibrary() die entsprechende M$-Dll öffnen und darüber die Funktion aufrufen müssen.
			 
			
					
				
				Verfasst: 31.12.2005 14:16
				von uweb
				Danke !!!
Ich habe mit LoadLibrary() bisher noch nichts gemacht. 
Aber, jetzt habe ich zumindest einen Ansatz.
			 
			
					
				
				Verfasst: 31.12.2005 14:50
				von uweb
				Code: Alles auswählen
Enumeration
  #LinkToKernel32Lib
EndEnumeration
File01.s="test01.BMP"
File02.s="test02.BMP"
If OpenLibrary(#LinkToKernel32Lib, "kernel32.dll")
CHL = CallFunction(#LinkToKernel32Lib, "CreateHardLink", File01, File02, 0)
    If CHL
         MessageRequester("Ergebnis", "CreateHardLink_ ausgeführt")
    Else
         MessageRequester("Ergebnis", "CreateHardLink_ NICHT ausgeführt - Quelldatei vorhanden ?")
  EndIf 
EndIf
Ok, jetzt läßt es sich kompilieren.
Aber funktionieren will es noch nicht.
Da die EXE und test01.BMP im Hauptverzeichnis eines NTFS-Laufwerks liegen vermute ich den Fehler eher in einer nicht beachteten API-Konvention.
 
			 
			
					
				
				Verfasst: 31.12.2005 14:53
				von ts-soft
				Laut MSDN lautet der Funktionsname "CreateHardLinkA" für ANSI
			 
			
					
				
				Verfasst: 31.12.2005 14:59
				von uweb
				Danke, aber am Ergebnis ändert das nichts.
Ich muß da noch einen anderen Fehler gemacht haben.
			 
			
					
				
				Verfasst: 31.12.2005 15:16
				von Zaphod
				manche api funktionsnamen sind unter pb geringfügig anders. da gab es manchmal einen prefix. ich glaube das hatte damit zu tun, dass purebasic irgendwelche bestandteile von lcc benutzt hat.
			 
			
					
				
				Verfasst: 31.12.2005 15:45
				von edel
				Tausch mal die Quell- mit der Zieldatei. Zieldatei darf nicht vorhanden sein.
Wie ts-soft schon schrieb : CreateHardLinkA nutzen .
			 
			
					
				
				Verfasst: 31.12.2005 15:47
				von uweb
				Danke !
Leider konnte ich dazu nichts passendes finden.
Zwei neue Gedanken werfen zwei neue Fragen auf :
1. Zum letzten Parameter ( Reserved; must be NULL ) 
- Ist NULL in dem Fall gleich 0 ?
2. Funktioniert das bei jemand anderem ?
Code: Alles auswählen
Enumeration
  #LinkToKernel32Lib
EndEnumeration
File01.s="test01.BMP"
File02.s="test02.BMP"
If OpenLibrary(#LinkToKernel32Lib, "KERNEL32.DLL")
CHL = CallFunction(#LinkToKernel32Lib, "CreateHardLinkA", File01, File02, 0)
    If CHL
         MessageRequester("Ergebnis", "CreateHardLinkA_ ausgeführt")
    Else
         MessageRequester("Ergebnis", "CreateHardLinkA_ NICHT ausgeführt - Quelldatei vorhanden ?")
  EndIf 
EndIf
 
			 
			
					
				
				Verfasst: 31.12.2005 15:52
				von uweb
				hallodri`s Tipp war der letzte Schritt zum Ziel.
Es funktioniert !
Danke noch einmal an alle.