<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77821.aspx</link><pubDate>Fri, 16 Sep 2016 00:23:03 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77821</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77821.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77821</wfw:commentRss><description>&lt;p&gt;Δίκιο έχεις &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-42.gif" alt="Confused" /&gt;, έχω αιώνες να κάνω κάτι τέτοιο και ξέχασα. Βλέπω μάλιστα ότι δεν αναφέρεται καν η χρήση .ΝΕΤ από unmanaged κώδικα στο &lt;a title="Interoperability Overview" href="https://msdn.microsoft.com/en-us/library/ms173185.aspx" target="_blank"&gt;"Interoperability Overview"&lt;/a&gt;&amp;nbsp;. Παλιά το λέγανε άτυπα "Reverse PInvoke", οπότε μάλλον γι αυτό τα μπέρδεψα.&lt;/p&gt;&lt;p&gt;Για να γίνει κληθεί .NET assembly από C ή Delphi πρέπει να προστεθεί ένα NuGet package το οποίο μεταξύ άλλων ... κάνει host το ίδιο το CLR μέσω COM. Διαφορετικά οι κλήσεις&amp;nbsp;για το&amp;nbsp;CLR hosting&amp;nbsp;πρέπει να γίνουν από την ίδια την εφαρμογή. &lt;/p&gt;&lt;p&gt;Σίγουρα *δεν* είναι η πιο απλή λύση.&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77820.aspx</link><pubDate>Fri, 16 Sep 2016 00:05:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77820</guid><dc:creator>nikos123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77820.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77820</wfw:commentRss><description>To&amp;nbsp;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12.096px;"&gt;P/Invoke einai gia na kaleis unmanaged apo .NET. O xristis zitaei to&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12.096px;"&gt;antitheto (&lt;/span&gt;&lt;span style="font-family:Tahoma, Arial, Helvetica;font-size:12.096px;"&gt;na kalei .NET apo unmanaged).&lt;/span&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77819.aspx</link><pubDate>Thu, 15 Sep 2016 23:56:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77819</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77819.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77819</wfw:commentRss><description>&lt;p&gt;Δυστυχώς, πέτυχες το αντίθετο. *Τώρα* όποιος χρήστης βγάλει την εφαρμογή θα έχουν πρόβλημα όλοι οι χρήστες. Εκτός και αν εγκαθιστάς την εφαρμογή στο Documents ή κάποιο άλλο folder το οποίο είναι ακατάλληλο για εγκατάσταση προγραμμάτων. &lt;/p&gt;&lt;p&gt;Τα Windows υποστηρίζουν per-machine ή per-user εγκατάσταση εξαπανέκαθεν. Μόνο ένας administrator μπορεί να βάλει ή βγάλει μία εφαρμογή για *όλους* τους χρήστες. Αυτό κάνει η επιλογή που βλέπεις στους διάφορους installers για εγκατάσταση σε όλους τους χρήστες. &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;Aπό τα Windows 7 και μετά μάλιστα, οι εφαρμογές που εγκαθιστούν οι χρήστες ως Per-User πάνε στο προσωπικό folder του κάθε χρήστη μέσα στο&amp;nbsp;%LocalAppData%\Programs.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Τα COM registrations έχουν reference count και δεν βγαίνουν αν δεν απεγκατασταθεί και η *τελευταία* εφαρμογή που τα χρησιμοποιεί. Αυτό έγινε ακριβώς για να αποφευχθεί το πρόβλημα να *απεγκατασταθεί ή διαγραφεί το DLL* και έτσι να σκάσουν όλες οι άλλες εφαρμογές και χρήστες. Επιπλέον, με το COM δεν υπάρχει ασάφεια για το τι ακριβώς τύπους θέλει η κάθε μέθοδος. Η Delphi μπορεί να δημιουργήσει τους αντίστοιχους τύπους απλά κοιτάζοντας το tlb. Αντίθετα, με χύμα functions θα πρέπει να φτιάξεις με το χέρι τύπους που θα ταιριάζουν ακριβώς σε αυτά που περιμένει η βιβλιοθήκη. Αν το παραμικρό πάει στραβά, θα φας κατευθείαν Access Violation χωρίς εξήγηση.&lt;/p&gt;&lt;p&gt;Όσο για το blog, αυτά θα τα έβρισκες και στο documentation του P/Invoke. Πχ. το πρώτο αποτέλεσμα ψάχνοντας για "C# P/Invoke" &amp;nbsp;είναι το "Platform Invoke Tutorial" στο&amp;nbsp;https://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx . Υπέθεσα ότι για να ρωτάς πως να καλέσεις .NET από Delphi το είχες ήδη κοιτάξει. &lt;/p&gt;&lt;p&gt;Όπως και να έχει, η χρήση COM είναι ευκολότερη και ασφαλέστερη, ακριβώς επειδή δεν υπάρχει ασάφεια στις κλήσεις και επειδή είναι δυσκολότερο να χαθούν DLL επειδή σβήστηκαν κατά τύχη.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77818.aspx</link><pubDate>Thu, 15 Sep 2016 16:40:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77818</guid><dc:creator>Bill </dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77818.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77818</wfw:commentRss><description>&lt;p&gt;&amp;nbsp; &amp;nbsp;Για την ιστορία του &amp;nbsp;topic βρήκα λύση χωρίς να κάνω C++ γέφυρα ή να κάνω registry το com. Η λύση σε αυτό εδώ το url&amp;nbsp;https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports.&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;Τώρα όσον αφορά το θέμα να μην κάνω register το .tlb μου γλυτώνει από σενάρια του τύπου : Αν έχω ένα μηχάνημα με πολλούς users και κάνει ένας από τους χρήστες uninstall την εφαρμογή μου, θα κάνει και unregister το com object μου και θα έχουν όλοι οι χρήστες πρόβλημα. Ή θα έπρεπε κάθε φορά στον κώδικα να κάνω register το συγκεκριμένο com. anyway επειδή δεν ήθελα να μπλέξω με τέτοιου είδους σενάρια θεωρώ καλύτερη λύση την απλούστερη.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Ευχαριστώ για τις συμβουλές όλων σας&amp;nbsp;&lt;img width="19" height="19" border="0" style="font-size:10pt;" src="http://www.dotnetzone.gr/cs/emoticons/emotion-1.gif"&gt;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77816.aspx</link><pubDate>Tue, 13 Sep 2016 02:48:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77816</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77816.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77816</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Bill :&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;Έχεις δίκιο, αλλά δε θέλω να τρέχω σε κάθε client regasm (έστω και μια φορά μόνο) αν υπάρχει τρόπος να το αποφύγω. Αλλά αν γίνει όντως πολύ πολύπλοκο τότε θα αναγκαστώ να τρέχω το regasm..&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;&lt;p&gt;Δεν τρέχεις σε κάθε&amp;nbsp;client το regasm - το regasm το&amp;nbsp;τρέχεις μία φορά στο developer μηχάνημα και σου&amp;nbsp;φτιάχνει το .tlb. Από εκεί και&amp;nbsp;πέρα το&amp;nbsp;πως θα γίνει το .tlb&amp;nbsp;register στο client, είναι ο ίδιος τρόπος με κάθε COM component.&amp;nbsp;Το σύνηθες είναι να στο κάνει register ο installer που θα έχεις για την εφαρμογή. Κανένα component που είναι COM δεν είναι απλά το κάνω copy και παίζει...&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;George J.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77815.aspx</link><pubDate>Tue, 13 Sep 2016 02:37:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77815</guid><dc:creator>Bill </dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77815.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77815</wfw:commentRss><description>&lt;p&gt;&amp;nbsp; &amp;nbsp;Έχεις δίκιο, αλλά δε θέλω να τρέχω σε κάθε client regasm (έστω και μια φορά μόνο) αν υπάρχει τρόπος να το αποφύγω. Αλλά αν γίνει όντως πολύ πολύπλοκο τότε θα αναγκαστώ να τρέχω το regasm...&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77814.aspx</link><pubDate>Tue, 13 Sep 2016 02:11:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77814</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77814.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77814</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Bill :&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Ξανά επιστρέφω γιατί σε όσες λύσεις βρήκα απαιτούν να κάνα regasm dll. Μήπως γνωρίζει κανείς αν μπορώ να κάνω ένα unmanaged dll σε C++ το οποίο θα καλεί ένα .net DLL managed χωρίς να απαιτεί να κάνω regasm ? Γενικά ψάχνω να καλέσω ένα managed dll .net μέσα από μια άλλη γλώσσα πχ Delphi ή C++ (βάζω και την C++ μήπως μπορώ να κάνα μια ενδιάμεση γέφυρα μεταξύ C# και Delphi)&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;&lt;p&gt;Αρχικά το regasm δεν είναι .dll&amp;nbsp;είναι command-line&amp;nbsp;utility -&amp;nbsp;δες εδώ: https://msdn.microsoft.com/en-us/library/tzat5yw6(v=vs.110).aspx.&amp;nbsp;Στον υπολογιστή μου είναι μέσα στο "C:\Windows\Microsoft.NET\Framework64\v4.0.30319"&amp;nbsp;οπότε εκεί είναι και στον δικό σου.&lt;/p&gt;&lt;p&gt;Όσο σε πιο "παλιές" γλώσσες πηγαίνεις χάνεις τους "αυτοματισμούς" και τις ευκολίες σου - δεν θα είναι πιο εύκολο, θα είναι πιο πολύπλοκο να κάνεις μια τέτοια γέφυρα.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;George J.&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77813.aspx</link><pubDate>Mon, 12 Sep 2016 20:00:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77813</guid><dc:creator>nikos123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77813.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77813</wfw:commentRss><description>&lt;p&gt;An to .net Dll to ftiaxeis me C++/CLI anti sketi C# ginetai xoris na kaneis COM register.&amp;nbsp;&lt;/p&gt;&lt;p&gt;H an ftiaxeis ena C++/CLI wrapper tou .net dll.&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://pragmateek.com/using-c-from-native-c-with-the-help-of-ccli-v2/&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77812.aspx</link><pubDate>Mon, 12 Sep 2016 03:48:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77812</guid><dc:creator>Bill </dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77812.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77812</wfw:commentRss><description>&lt;p&gt;&amp;nbsp; &amp;nbsp;Ξανά επιστρέφω γιατί σε όσες λύσεις βρήκα απαιτούν να κάνα regasm dll. Μήπως γνωρίζει κανείς αν μπορώ να κάνω ένα unmanaged dll σε C++ το οποίο θα καλεί ένα .net DLL managed χωρίς να απαιτεί να κάνω regasm ? Γενικά ψάχνω να καλέσω ένα managed dll .net μέσα από μια άλλη γλώσσα πχ Delphi ή C++ (βάζω και την C++ μήπως μπορώ να κάνα μια ενδιάμεση γέφυρα μεταξύ C# και Delphi)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77799.aspx</link><pubDate>Sun, 04 Sep 2016 05:23:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77799</guid><dc:creator>Bill </dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77799.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77799</wfw:commentRss><description>&lt;p&gt;Βρήκα ένα επίσης χρήσιμο url&amp;nbsp;http://forums.devshed.com/delphi-programming-90/dll-delphi-231122.html&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Απ: .net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77798.aspx</link><pubDate>Sat, 03 Sep 2016 00:40:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77798</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77798.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77798</wfw:commentRss><description>&lt;p&gt;Καλησπέρα σου,&lt;/p&gt;
&lt;p&gt;Αν&amp;nbsp;θυμάμαι καλά για να το δεις από την Delphi θα πρέπει να φτιάξεις ένα COM Wrapper για το .NET component σου. Θα πρότεινα να ξεκινήσεις από τα παρακάτω threads:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Form.NET ΣΕ VB6 (http://www.dotnetzone.gr/cs/forums/thread/3420.aspx)&lt;/li&gt;
&lt;li&gt;Φτιάχνοντας ένα COM Wrapper για ένα .NET Component (http://www.dotnetzone.gr/cs/forums/thread/1358.aspx)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;George J.&amp;nbsp;&lt;/div&gt;&lt;ul&gt;
&lt;/ul&gt;</description></item><item><title>.net DLL calling from DELPHI vcl</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/77797.aspx</link><pubDate>Fri, 02 Sep 2016 19:45:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:77797</guid><dc:creator>Bill </dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/77797.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=77797</wfw:commentRss><description>&lt;p&gt;&amp;nbsp; &amp;nbsp; Καλημέρα&lt;/p&gt;&lt;p&gt;Θέλω να φτιάξω ένα DLL C# .net 4 (το έχω φτιάξει ήδη) ωστόσο θέλω να το καλέσω μέσα από περιβάλλον Delphi. Εκεί διαπίστωσα ότι θα πρέπει από managed dll που παράγει το .net να το κάνω pe DLL. Η ερώτηση μου είναι απλή. Πως το κάνω αυτό με απλά βήματα ?&lt;/p&gt;&lt;p&gt;Είδα σε κάποια forums αλλά δε πολύ κατάλαβα. &lt;/p&gt;&lt;p&gt;Ευχαριστώ&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>