Thomas Wölfers Baustatik-Blog

Thomas Wölfers Baustatik Blog

Bootstrapper für Managed DirectX (9.0x) für Visual Studio


Im VS 2005 kann man ja den Bootstrapper verwenden, um mit Hilfe von Manifest-Dateien bestimmte Vorabbedingungen im Rahmen eines Setup-Projektes mit zu installieren. Mitgeliefert werden Bootstrapper unter anderem für .Net 2.0, die VC++ Redist-Files und MDAC. Es gibt aber keinen für Managed DirectX. Und auch mit längerer Suche in der Doku habe ich nichts gefunden - selbst Tom wusste nichts dazu zu sagen, und er war bis vor kurzem der PM für MDX.

Chris wusste aber was: Wer also einen Bootstrapper für Managed DirectX sucht, der findet Ihn auf GotDotNet. (Wo ich übrigens auch gesucht hatte, aber die Suche dort ist ein wenig suboptimal... ;-))

 


Der Papst kommt ...


... und schon werden wieder die Gullideckel zugeschweist. Was ich nicht verstehe: Warum? Kann mir irgendwer erklären, welchen Zweck das verschweissen der Gullis hat?


AutoRun mit USB Memoy-Sticks


Manchmal wäre es nett, wenn man auch mit USB-Sticks Autorun-Möglichkeiten hätte. Wenn also, nachdem der Stick reingesteckt wurde, automatisch eine Anwendung vom Stick gestartet wird. Mit USB Memory-Sticks geht das aber eigentlich nicht - zumindest nicht von Haus aus.

Wenn man aber ein bisschen Software auf dem eigenen Rechner installiert, dann geht das schon. Mit einer Windows.Forms Anwendung könnte das beispielsweise so aussehen: Man macht eine normale Forms-Anwendung, und kümmert sich drum, das die nicht in der Taskleiste angezeigt wird. Das Ding startet man per Autostart. Diese Anwendung muss dann nur noch darauf horchen, ob ein neues Medium in den USB-Slot gesteckt wurde, und kann dann darauf reagieren.

Im Kern sieht das so aus:

public partial class Form1 : Form
{
   public Form1()
   {
      InitializeComponent();
   }

   private const UInt32 WM_DEVICECHANGE = 0x0219;
   private const int DBT_DEVICEARRIVAL = 0x8000;

  protected override void WndProc(ref Message m)
  {
   base.WndProc(ref m);
   this.Location = new Point(-300, -300);

   if (m.Msg == WM_DEVICECHANGE)
   {
      if (m.WParam == (IntPtr )DBT_DEVICEARRIVAL)
      {
         // hier gehts dann los ...
      }
   }
  }
}


Der Dauerkampf mit der Lastfallüberlagerung


In der Vorabdokumentation zum Faltwerkprogramm finden sich ja schon eine Menge Hinweise über die Lastfallüberlagerung: Die war auch im großen und ganzen fertig - und sogar etwas schneller, als in den alten Programmen. Das war schön - aber dummerweise stellte sich heraus, das wir auch deutlich mehr damit tun als früher. So kann man beispielsweise im kommenden Programm für jeden Ntels-Punkt einzeln ermitteln, welche Lastfälle im einzelnen mit welchen Wichtungsfaktoren zum endgültigen Ergebnis geführt haben. Das ging früher nicht.

Ohne diese Funktion brauchte die Überlagerung pro Ntels-Punkt (in einem Testbeispiel) etwa 15 ms - das klingt ganz gut. Mit dem "Protokoll", mit dem man die Lastfallinformationen bekam waren es aber leider 600 ms. Das klingt noch immer nicht nach besonders viel Zeit, man darf aber nicht vergessen, das diese Überlagerung irrsinning oft durchgeführt wird. Bei 10 Balken mit je 10 Ntels-Punkten bereits 100 mal. Bei 600 ms bewegen wir uns also etwa im bereich von 10 Sekunden: Das ist eindeutig zu langsam.

Und damit habe ich mich dann fast die ganze letzte Woche vergnügt: Die neue Implementierung (die seit heute abend hoffentlich funktioniert) braucht nun bei gleichen Beispiel nur noch 15 ms - allerdings pro Balken, nicht pro Ntels-Punkt, und einschliesslich des "Protokolls".

Und außerdem: ein paar Optimierungen wäre in der Zukunft noch möglich. Es würde also noch schneller gehen...


Probleme mit arabischen Fonts


Hin und wieder tritt bei einigen Kunden die unsere Statiksoftware benutzen ein merkwürdiges Problem auf: Das Programm meldet, es sei für eine arabische Version von Windows nicht geeignet - und kann nicht gestartet werden.

Dafür gibt es einen ziemlich obskuren Grund, der mit einer früher mal geplanten arabischen Version zusammenhängt: Die Programm suchen nach Fonts mit dem Text "Arabic" im Namen - finden sie so einen, dann gehen sie davon aus, das sie sich auf einem "arabischen" Windows befinden. Was natürlich Blödsinn ist.

Weil das heute wieder einmal aufgefallen war, bauen wir diesen Test nun endgültig aus: Das Problem sollte also ab der nächsten Version nicht wieder auftreten.


Das Netzwerk der Bauplaner


Fand ich interessant: Ein Web-Angebot für "Bauwillige", über das Angebote eingeholt werden können: Honorarangebot.de

Weniger nett: Offenbar wird diese Webseite per Spam-Mail beworben - kann mir zumindest nicht erklären, warum ich sonst gleich zwei Info-Mails von dort erhalten habe.


Goliath: Hochhaus-Sprengung


Von Martin Vogel gibts im offenen Forum Bauingenieurswesen eine nette Liste von Links. Die führen alle zu Videos der Sprengung des "Goliath" Hochhauses in Marl.


Ruhige Tage


In den letzten paar Tagen war es hier ruhig im Blog: Ich war von Sonntag bis Mittwoch in Oberhausen und habe dort keine Zeit fürs Blog gefunden... :-)

Falls es jemanden interessiert: Zumindest bei innerdeutschen Flügen ( MUC <-> DUS ) gibts weder besondere Sicherheitsüberprüfungen, noch ist das Handgepäck irgendwie eingeschränkt.

Und noch eine Anekdote vom Hinflug: Ich war bereits auf meinem Platz (B54) - da man eine Dame mit einem Boarding-Pass und machte mich darauf aufmerksam, das Sie gern auf ihren Platz wollte. Auf B54. Daraufhin ich: Komisch, da hab ich ja den gleichen - und halte ihr meinen Boarding-Pass hin.

Daraufhin sie: Ja, da steht B54, aber das ist das Gate... ihr Platz is 22F. Steht rechts daneben.

Peinliche Sache.