{"id":281,"date":"2008-08-03T20:04:14","date_gmt":"2008-08-03T18:04:14","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=281"},"modified":"2008-07-28T19:02:18","modified_gmt":"2008-07-28T17:02:18","slug":"tipps-tricks-import-durch-include-ersetzen","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2008\/08\/03\/tipps-tricks-import-durch-include-ersetzen\/","title":{"rendered":"Tipps &#038; Tricks: #import durch #include ersetzen"},"content":{"rendered":"<p>Nicht wenige verwenden, wie ich auch COM Komponenten, aus dem eigenen Haus oder von Fremdherstellern. Eingebunden werden diese COM-Komponenten oft genug \u00fcber das <em>#import <\/em>Statement, das ja eine wirklich simple Integration erlaubt.<\/p>\n<p>L\u00e4stig ist nur, dass diese Komponenten nicht auf allen Rechnern in den selben Verzeichnissen liegen. Das macht es nicht leicht Projekte und Entwicklungmaschinen so auszustatten, dass alle Projekte gleich zu kompilieren sind. Da f\u00e4ngt es schon an, dass ein Entwickler ein englisches OS (<em>C:\\Program Files<\/em>), ein andere ein deutsches (<em>C:\\Programme<\/em>) und der dritte Entwickler benutzt das Installationverzeichnis der zu entwickelnden Komponente (C:\\Dev\\Project\\Bin).<\/p>\n<p>Aus diesem Grund bin ich dazu \u00fcbergangen das <em>#import <\/em>Statement nur einmal auszuf\u00fchren, und die entstehenden <em>.tlh <\/em>und <em>.tli <\/em>Dateien direkt in das Projekt aufzunehmen.<br \/>\nZu schnell? OK, also schrittweise:<\/p>\n<ul>\n<li>Ich binde die\u00a0Komponente also wie gewohnt per #import\u00a0ein.<\/li>\n<li>Die entstehenden <em>.tlh <\/em>und evtl. auch die <em>.tli <\/em>Dateien werden in das Projektverzeichnis kopiert und in das Projekt aufgenommen.<\/li>\n<li>Das das <em>#import <\/em>Statement wird nun auskommentiert und statt dessen entsprechende <em>#include <\/em>Statements eingesetzt.<\/li>\n<li>Nachdem man das auch korrekt mit entsprechenden Versionsangaben der Komponente dokumentiert hat und auch dieses Verfahren in die Projektbeschreibung aufgenommen hat ist man fertig!<\/li>\n<\/ul>\n<p>Vor- und Nachteile:<\/p>\n<ul>\n<li>Nicht nur, dass dieses Projekt unabh\u00e4ngig kompiliert werden kann. Das Kompilieren ist auch noch schneller, denn die (an sich) statischen <em>.tlh <\/em>und <em>.tli <\/em>Dateien werden nicht immer neu erzeugt.<\/li>\n<li>Vorrausetzung ist hier sicherlich, dass es sich hier um Komponenten handelt, deren Interface sich nicht mehr ver\u00e4ndert, und man muss bei einem Update der Komponente nat\u00fcrlich auch manuell die neuen <em>.tli <\/em>und <em>.tlh <\/em>Dateien einbauen.<\/li>\n<li>Ein weiterer Vorteil ist auch, dass das Interface fest eingebunden wird, das auch f\u00fcr die Auslieferung festgelegt wird und keine alte\/oder neuere Version zu \u00dcberraschungen f\u00fchrt.<\/li>\n<li>Was auch zu dem genialen Verhalten f\u00fchrt, dass man aus dem Sourcecontrol System eine Software Version erzeugen kann, die noch mit einer \u00e4lteren\/abweichenden COM Komponente erzeugt wurde ohne diese auch noch mal installieren zu m\u00fcssen!<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Nicht wenige verwenden, wie ich auch COM Komponenten, aus dem eigenen Haus oder von Fremdherstellern. Eingebunden werden diese COM-Komponenten oft genug \u00fcber das #import Statement, das ja eine wirklich simple Integration erlaubt. L\u00e4stig ist nur, dass diese Komponenten nicht auf allen Rechnern in den selben Verzeichnissen liegen. Das macht es nicht leicht Projekte und Entwicklungmaschinen &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2008\/08\/03\/tipps-tricks-import-durch-include-ersetzen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eTipps &#038; Tricks: #import durch #include ersetzen\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,3,9,2],"tags":[370,92,42],"class_list":["post-281","post","type-post","status-publish","format-standard","hentry","category-c","category-programmieren","category-sonstiges","category-windows-api","tag-c","tag-com","tag-tippstricks"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}