Shashin Error:

Invalid data property __get for imageDisplay
Zum Inhalt springen

Gestern hat mein Drucker einfach den Dienst mit der Meldung Service Fehler 6A00 quittiert. Man kennt das ja, man muss gleich weg und will nur schnell noch was ausdrucken… weiter lesen…

Mit dem C++ Schlüsselwort „explicit“ kann man dem Compiler implizite Typumwandlungen verbieten. Dies kann manchmal ja auch ungewollt passieren, wie folgendes Beispiel zeigt:

#include <iostream>
#include <windows.h>
struct MyClass
{
    MyClass(const char* name) : m_Name(name) {}
    virtual ~MyClass() {}
    const char* Who() const { return m_Name; }
private:
    const char* m_Name;
};
 
struct MyExplicitClass
{
    explicit MyExplicitClass(const char* name) : m_Name(name) {}
    virtual ~MyExplicitClass() {}
 
    const char* Who() const { return m_Name; }
private:
    const char* m_Name;
};
 
 
int main()
{
    MyClass A("a");
    MyExplicitClass B("b");
 
    A = "c";  // ok, hier funktioniert das, aber war das auch so gewollt? 
              // Auf den ersten Blick zu durchschauen ist diese Zuweisung jedenfalls nicht.
 
    B = "d";  // error C2679: Binärer Operator '=': Es konnte kein Operator gefunden werden, 
              // der einen rechtsseitigen Operanden vom Typ 'const char [2]' akzeptiert (oder
              // keine geeignete Konvertierung möglich)
 
    std::cout << "A: " << A.Who() << std::endl;
    std::cout << "B: " << B.Who() << std::endl;
 
    return 0;
}

Multi-Zwischenablage

Eher zufällig bin ich beim Coden auf ein nettes Feature im Visual Studio (2008) gestoßen: VS hat eine mehrfache Zwischenablage auf die man mittels Shift+Ctrl+V zugreifen kann. Somit kann man auch auf Sachen zugreifen, die man eigentlich schon überschrieben hat.
vs2008_clipboard

Inkrementelle Datei-Suche

Mittels Ctrl+# gelangt man in das Suchen-Feld. Dort kann man mittels <of + Dateiname Dateien öffnen. Dabei werden alle Dateien der Solution inkrementell auf die Eingabe gematcht und in einer Combobox angeboten.

EIS

Easy Installation System


Mein Installations-Tool, das Easy Installation System, ist jetzt auf Google Code verfügbar. EIS ist ein vollständiges Installationssystem, das in MASM32 geschrieben wurde. Es ist in deutsch und englisch verfügbar und für RAR-Dateien ausgelegt. Weitere Details auf der Projektseite: http://code.google.com/p/eis/

Die Entscheidung es OpenSource zu machen fiel, da ich leider nicht mehr genug Zeit habe es zu pflegen. Ich fände es allerdings schade, wenn das Projekt einfach so in der Versenke verschwinden würde.

Ich werde zwar versuchen, das Projekt weiter zu verwalten, aber viel Zeit kann und will ich dafür nicht mehr investieren.

Mittlerweile gibt es ein paar hübsche neue (offizielle) Fonts in der Windows-Welt abseits Arial und Times New Roman. Diese sollen vor allem aber auch besser für Cleartype (urks!) geignet sein.
Hierzu habe ich einen interessanten Artikel gefunden, der eine kurze Übersicht der neuen bietet. Am besten gefallen hat mir persönlich dabei die serifenfreie Schriftart Corbel und die Serifenschriftart Constantia. Die monospace-Schtriftart Consolas taugt in meinen Augen überhaupt nicht als Ersatz für die gute Courier New z.B. für Text-Editoren. In Präsentationen oder Dokumenten macht sie allerdings eine ziemlich gute Figur. Vor allem die kursive Variante ist deutlich schöner als die der Courier New. Cambria ist noch eine weitere Serifenschrift, die sich aufgrund ihrer Schnörkellosigkeit gut für offizielle Dokumente eignet.

Eine abstrakte Klasse in C++ hat mindestens eine pure virtual Funktion (gekennzeichnet durch virtual ... = 0). Diese Funktionen können per Definition nicht direkt aufgerufen werden, da sie keine Implementierung haben (auch per Definition). Sollte die Methode dennoch aufgerufen werden, wird das Programm (von der Runtime) mit der Fehlermeldung „Pure virtual function call“ abgebrochen. weiter lesen…

Bisher habe ich Programme immer in MASM32 geschrieben, wenn es darum ging, möglichst effiziente und platzsparende Executables zu erzeugen. Mann kann aber auch prima mit nativem C oder C++ die Dateigröße drastisch reduzieren. weiter lesen…

#include <iostream>
 
using namespace std;
 
int main()
{
   cout << "Hi, freaky world!" << endl;
   return 0;
}

Ich habe meinen Webspaceprovider gewechselt. Dabei bin ich gleich von REDAXO auf WordPress umgestiegen, da dies eher meinem Verhalten entspricht. REDAXO ist meiner Meinung nach trotzdem ein leider viel zu unbekanntes aber dennoch einfach zu bedienendes und trotzdem sehr professionelles Content-Management-System.
Bis ich alle alten Inhalte hier wieder aufgebaut habe, wird es allerdings noch eine Weile dauern.

GPGPU

Jul 4

GPGPU means General Purpose computation on Graphics Processing Units. On this page a few basic programs and libraries are presented that show how the GPU can be used for computer vision tasks like edge detection.

Requirements

The following hardware and software is needed to run the programs:

  • A graphics card (and driver) that supports OpenGL 2.0
  • The OpenGL Utility Toolkit (GLUT)
  • C for Graphics (Cg)
  • C++ (e.g. Visual C++ 8.0)

  GLUT Win32 3.7.6 (117,1 KiB, 1.137 hits)
This is GLUT for Win32 version 3.7.6 as of Nov 8th 2001 by Nate Robins.

  Simple Shader Test (194,2 KiB, 1.328 hits)
Simple demo program that demonstrates the use of Cg shaders for GPGPU using some edge detection filters (Sobel, Laplacian, Laplacian of Gaussian, Difference of Gaussian). Program needs glut32.dll Cg.dll and CgGL.dll. shadertest

Links