Archive for the ‘Programmieren’ Category
Woran man Entwickler erkennt
Damit die Klischees ihre Erfüllung finden:
Gefunden auf graphitti-blog.de.
LoadLibrary() Windows API Fehler 126
Manchmal bekam ich einen Fehler, bzw. einen IntPtr.Zero, wenn ich versucht hatte, mittels LoadLibrary eine Assembly zu laden. Den Fehler, den ich mit GetLastWin32Error abfragen konnte, war 126 – eine nichts aussagende Zahl. Nach etwas recherchieren kam ich dann zur Lösung. Read the rest of this entry »
Ermitteln von nativen Assembly-Funktionen
Um Funktionen einer Assembly mit Hilfe der Windows-API LoadLibrary zu laden, um sie dann später mit GetProcAddress auszuführen, ist es hilfreich, die Funktionen einer Assembly zu kennen.
Die Auflistung bekommt ihr durch Nutzung von “dumpbin”, welches in der Visual Studio sowie in der Windows SDK Command Prompt integriert ist. Der Aufruf erweist sich als recht simpel:
dumpbin “%windir%\System32\aepic.dll” /EXPORTS
Wie die Auflistung (s. Bild) zeigt, beinhaltet die “aepic.dll” die Funktionen PicFreeFileInfo sowie PicRetrieveFileInfo.
Denkt an das FreeLibrary
Randnotiz: Beim Laden einer Assembly kann ein Fehler auftreten, mehr dazu hier.
MSSQL Management Studio – 29506 Fehler
Während der Installation vom MSSQL Management Studio auf Windows 7 x64 bekam ich immer den Fehler 29506. Einfache und schnelle Lösung ist, die Installation trotz der zuvor auffordernden UAC-Bestätigung als Administrator auszuführen. Wenn das Ausführen als Administrator über das Kontextmenü nichts bringt, müsst ihr über ein als Administrator gestartetes “cmd” den Pfad zur Installation angeben und bestätigen. It works fine!
StringBuilder für JavaScript – StringBuffer-Klasse
JavaScript ist extrem langsam*, wenn es um String-Verkettungen mit den herkömmlichen Mitteln geht.
var foo = "foo"; foo = foo + "bar"; // oder var foo = "foo"; foo += "bar";
Mithilfe der StringBuffer-Klasse geht es erheblich schneller:
function StringBuffer() {
this.buffer = [];
this.iCount = -1;
}
StringBuffer.prototype.append = function append(string) {
this.buffer[++this.iCount] = string;
return this;
};
StringBuffer.prototype.toString = function toString() {
return this.buffer.join("");
};Der Aufruf ist einfach und ähnlich dem StringBuilder in .NET:
var foo = new StringBuffer();
foo.append("foo");
foo.append("bar");
alert(foo.toString());
* Die neuen bzw. modernen Browser (Firefox 4, IE 9 etc.) haben erhebliche Verbesserungen gemacht – früher war nicht alles besser

