<?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>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44388.aspx</link><pubDate>Sun, 31 Aug 2008 18:29:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44388</guid><dc:creator>tasosmpp</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44388.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44388</wfw:commentRss><description>Ευχαριστώ όλους για τον χρόνο και τις απαντήσεις.&lt;br&gt;&lt;br&gt;&lt;a&gt;George J. Capnias&lt;/a&gt; -&amp;gt; Το&amp;nbsp; &lt;a class="" href="http://msdn.microsoft.com/en-us/library/aa768224.aspx"&gt;IObjectSafety&lt;/a&gt; δεν χρειάζεται πάντα να υλοποιηθεί. Απλά στον IΕ αν δεν υλοποιηθεί εμφανίζεται μύνημα αν θέλω να τρέξει το ActiveX. Στο sidebar applet δεν πετάει κανένα μύνημα καθώς μαλλον ειναι trusted zone.&lt;br&gt;&lt;br&gt;
										&lt;a&gt;KelMan&lt;/a&gt; -&amp;gt; To Activex dll το έχω κάνει register με το regasm. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;br&gt;&lt;br&gt;&lt;a&gt;Παναγιώτης Καναβός&lt;/a&gt; -&amp;gt; Το Qt έχει δικούς του τύπους δεδομένων. Ο κώδικας C++ περνάει απο ειδικό προεπεξεργαστή για να παραχθεί ο τελικός C++ κώδικας που υλοποιούνται οι μηχανισμοί του toolkit. Για να χρησιμοποιήσω τον κώδικά αυτο σε Managed C++ ( με unsafe κτλ.) πρέπει να χρησιμοποιήσω τον τελικό C++ κώδικα που δεν είναι και πολύ κατανοητός gt είναι απο preprocessor (δεν λέω ότι δεν γίνεται αλλά όπως λένε και οι τύποι πίσω απο το Qt "μόνο για μελέτη" &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;br&gt;&lt;br&gt;Τεσπα το prob το βρήκα.&amp;nbsp; "&lt;i&gt;...ότι υπάρχει memory leak ή buffer overrun σε κάποιο function call&amp;nbsp;και γι
αυτό και έχεις αυτό το μήνυμα. Μπορεί να γεμίζεις κάποιο πίνακα με
περισσότερα στοιχεία απ' όσα μπορεί να δεχθεί, να επιστρέφεις ένα
string μεγαλύτερο από αυτό που έπρεπε, να θέτεις σε κάποια void*
παράμετρο πίνακα αντί για int κλπ&lt;/i&gt;"&lt;br&gt;&lt;br&gt;&lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;font-family:courier new;font-size:11px;color:gray;"&gt;1&lt;br&gt;2&lt;br&gt;3&lt;br&gt;4&lt;br&gt; &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;char&lt;/span&gt; *testfunc()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"asdasd"&lt;/span&gt;;&lt;br&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;Όσο και να φαίνεται ότι είναι σωστό δεν είναι. Αν και δουλεύει το αποτέλεσμα είναι σαν να γυρνάς μια local variable . Σε vs2005 και gcc4 δουλεύει σωστά χωρίς καν warning.&lt;br&gt;&lt;br&gt;&lt;br&gt;Το σωστό είναι να δευσμεύω μνήμη με την malloc (δηλαδή απο το heap) και να γυρνάω ένα pointer σε αυτήν την μνήμη. Όταν ο ΙΕ πάρει τον pointer τα δεδομένα είναι ακόμα στο heap... &lt;br&gt;&lt;br&gt;(Μας φάγανε τα managed .... &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;)&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44370.aspx</link><pubDate>Sat, 30 Aug 2008 02:18:19 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44370</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44370.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44370</wfw:commentRss><description>&lt;P&gt;Ποιό είναι ολόκληρο το error message? Που εμφανίζεται? Υποψιάζομαι&amp;nbsp; ότι υπάρχει memory leak ή buffer overrun σε κάποιο function call&amp;nbsp;και γι αυτό και έχεις αυτό το μήνυμα. Μπορεί να γεμίζεις κάποιο πίνακα με περισσότερα στοιχεία απ' όσα μπορεί να δεχθεί, να επιστρέφεις ένα string μεγαλύτερο από αυτό που έπρεπε, να θέτεις σε κάποια void* παράμετρο πίνακα αντί για int κλπ. Θα πρέπει να δεις ποιό είναι ολόκληρο το μήνυμα και που εμφανίζεται. Αν δεν έχεις βάλει exception handling στον κώδικα σου θα πρέπει να το κάνεις και να αποθηκεύεις κάπου τα μηνύματα λάθους μαζί με όσες περισσότερες πληροφορίες μπορείς. Αυτό θα πρέπει να το κάνεις και στον κώδικα C# και στον κώδικα C++ που έφτιαξες με το Qt. &lt;/P&gt;
&lt;P&gt;Από εκεί και πέρα, το .NET έχει garbage collection ενώ τα ActiveX όχι. Υπάρχουν αυστηροί κανόνες για το ποιός δημιουργεί ένα αντικείμενο στη μνήμη (string, integer, οτιδήποτε) και ποιός το σβήνει. Σε περίπτωση που σβήσεις είτε άμεσα είτε έμμεσα ένα αντικείμενο το οποίο θα ξανασβήσει ο IE, θα έχεις παρόμοιο πρόβλημα. Μπορεί για παράδειγμα ο IE να σου δίνει ένα BSTR το οποίο εσύ χειρίζεσαι ως string. Επειδή όμως ο IE δημιούργησε το αντικείμενο περιμένει ότι αυτός θα πρέπει και να το σβήσει. Καθώς όμως εσύ το χειρίζεσαι ως string και αυτό διαγράφεται&amp;nbsp; αυτόματα από τον garbage collector, θα πάρεις μήνυμα λάθους όταν προσπαθήσει ο ΙΕ να το ξανασβήσει.&lt;/P&gt;
&lt;P&gt;Εφόσον ήδη προγραμματίζεις σε C++ πάντως ίσως θα ήταν ευκολότερο να φτιάξεις το ActiveX σε Managed C++ αντί για C# και να δουλέψεις με includes αντί για DllImport&lt;/P&gt;</description></item><item><title>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44345.aspx</link><pubDate>Fri, 29 Aug 2008 05:21:58 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44345</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44345.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44345</wfw:commentRss><description>&lt;P&gt;Για να τρέξει ένα&amp;nbsp;.dll μέσα στον Internet Explorer δεν είναι αρκετό από μόνη της η υλοποίηση του σαν ActiveX DLL. Πρέπει να έχεις υλοποιημένα και άλλα interfaces, όπως το &lt;A class="" href="http://msdn.microsoft.com/en-us/library/aa768224.aspx"&gt;IObjectSafety&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Το Import που γράφεις στο κώδικά σου είναι για τον compiler - δεν βοηθάει σε τίποτα κατά το runtime.&lt;/P&gt;
&lt;P&gt;Δεν είμαι σίγουρος αν απαιτείται υλοποίηση και άλλων interfaces, για να παίξει κάτι ActiveX μέσα στο sidebar - θα πρότεινα να κοιτάξεις τον οδηγό ανάπτυξης &lt;A class="" href="http://msdn.microsoft.com/en-us/library/aa965850(VS.85).aspx"&gt;sidebar gadgets&lt;/A&gt;&amp;nbsp;που ύπάρχει στο MSDN Library&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44343.aspx</link><pubDate>Fri, 29 Aug 2008 01:56:50 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44343</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44343.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44343</wfw:commentRss><description>To ActiveX dll δεν πρέπει να έχει γίνει register με το regsvr32;</description></item><item><title>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44342.aspx</link><pubDate>Fri, 29 Aug 2008 01:18:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44342</guid><dc:creator>tasosmpp</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44342.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44342</wfw:commentRss><description>To dll το φορτώνω απο το path c:\Libs. (Έχω γράψει και το absolute path στο import.)&lt;br&gt;&lt;br&gt;Το παραπάνω path το έχω κάνει και append στο $PATH.&lt;br&gt;Αντέγραψα το dll στο system32 αλλά πάλι το ίδια.&lt;br&gt;Δοκίμασα και στο ίδιο folder τις σελίδας. ( Sidebar gadget)&lt;br&gt;&lt;br&gt;Δεν δουλεύει σε καμία περίπτωση. &lt;br&gt;&lt;br&gt;&lt;br&gt;Τί εννοείς με τα δικαιώματα στο folder???&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44339.aspx</link><pubDate>Thu, 28 Aug 2008 21:31:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44339</guid><dc:creator>George J. Capnias</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44339.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44339</wfw:commentRss><description>&lt;P&gt;Που βρίσκεται το 2o .dll;&lt;/P&gt;
&lt;P&gt;Για να δουλέψει αυτό πρέπει το δεύτερο .dll να βρίσκεται:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;στο path του υπολογιστή, και &lt;/LI&gt;
&lt;LI&gt;αν δεν είναι στο system32, θα πρέπει να υπάρχουν κατάλληλα δικαιώματα στο folder που θα το βάλεις...&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;George J.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>ActiveX και DllImport</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/44331.aspx</link><pubDate>Thu, 28 Aug 2008 18:10:13 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:44331</guid><dc:creator>tasosmpp</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/44331.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=44331</wfw:commentRss><description>&lt;u&gt;Προσπαθώ να κάνω το εξής: &lt;/u&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; 1) Δημιουργώ ένα ActiveX dll (c# .net) &lt;br&gt;&amp;nbsp;&amp;nbsp; 2) Δημιουργώ ένα 2ο dll το οποίο χρησιμοποιεί ετοιμο κώδικα. (QT 4)&lt;br&gt;&amp;nbsp;&amp;nbsp; 3) Κάνω export ένα function απο το 2ο dll για να το χρησιμοποιήσω στο ActiveX.&lt;br&gt;&lt;br&gt;&lt;u&gt;Μέχρι τώρα: &lt;/u&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1) Το ActiveX λειτουργει κανονικά όταν δεν κάνω import το 2ο dll.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2) To 2o dll μπορω να το κάνω import σε ένα C# console app και να το χρησιμοποιήσω κανονικά.&lt;br&gt;&lt;br&gt;&lt;u&gt;Πρόβλημα:&lt;/u&gt;&lt;br&gt;&amp;nbsp;Όταν κάνω import το 2o dll στο ActiveX dll τότε crasharei ο IE.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "This may be due to a corruption of the heap, and indicates a bug in iexplore.exe or any of the DLLs it has loaded"&lt;br&gt;&lt;br&gt;&lt;b&gt;Elib.dll&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;font-family:courier new;font-size:11px;color:gray;"&gt;1&lt;br&gt;2&lt;br&gt;3&lt;br&gt;4&lt;br&gt;5&lt;br&gt;6&lt;br&gt;7&lt;br&gt;8&lt;br&gt;9&lt;br&gt;10&lt;br&gt;11&lt;br&gt;12&lt;br&gt; &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Green;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Elib.h&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;extern&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"C"&lt;/span&gt;  {__declspec(dllexport) &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;char&lt;/span&gt; &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; getResult();}&lt;br&gt;&lt;br&gt;&lt;span style="color:Green;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;//Elib.cpp&lt;/span&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;extern&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"C"&lt;/span&gt; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;char&lt;/span&gt; &lt;span style="color:Red;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;*&lt;/span&gt; getResult()&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"asdas"&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;b&gt;&lt;br&gt;axTest.dll&lt;/b&gt;&lt;br&gt;&lt;table width="100%" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="margin:0px;padding:2px;font-family:courier new;font-size:11px;color:gray;"&gt;1&lt;br&gt;2&lt;br&gt;3&lt;br&gt;4&lt;br&gt;5&lt;br&gt;6&lt;br&gt;7&lt;br&gt;8&lt;br&gt;9&lt;br&gt;10&lt;br&gt;11&lt;br&gt;12&lt;br&gt;13&lt;br&gt;14&lt;br&gt;15&lt;br&gt;16&lt;br&gt;17&lt;br&gt;18&lt;br&gt;19&lt;br&gt;20&lt;br&gt;21&lt;br&gt;22&lt;br&gt;23&lt;br&gt;24&lt;br&gt;25&lt;br&gt;26&lt;br&gt;27&lt;br&gt;28&lt;br&gt;29&lt;br&gt;30&lt;br&gt;31&lt;br&gt;32&lt;br&gt;33&lt;br&gt;34&lt;br&gt;35&lt;br&gt;36&lt;br&gt;37&lt;br&gt;38&lt;br&gt;39&lt;br&gt;40&lt;br&gt;41&lt;br&gt; &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px 2px 2px 8px;"&gt;&lt;span style="color:Black;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Linq;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Text;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.Runtime.InteropServices;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;using&lt;/span&gt; System.ComponentModel;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;namespace&lt;/span&gt; axTest&lt;br&gt;{&lt;br&gt;&lt;br&gt;&lt;br&gt;    [Guid(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"24B826AF-690E-4033-AA63-7FF5EE3E173B"&lt;/span&gt;), InterfaceType(ComInterfaceType.InterfaceIsDual), ComVisible(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;true&lt;/span&gt;)]&lt;br&gt;    &lt;br&gt;    &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;interface&lt;/span&gt; IaxTest&lt;br&gt;    {&lt;br&gt;        String getResponse();&lt;br&gt;    }&lt;br&gt;&lt;br&gt;&lt;br&gt;    [Guid(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"A74EE44F-0144-445a-83AE-F27F00160700"&lt;/span&gt;), ProgId(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"csharpAx.myControl"&lt;/span&gt;),ClassInterface(ClassInterfaceType.None), ComDefaultInterface(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;typeof&lt;/span&gt;(IaxTest)),ComVisible(&lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;true&lt;/span&gt;)]&lt;br&gt;    &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;class&lt;/span&gt; myControl : System.Windows.Forms.UserControl,IaxTest&lt;br&gt;    {&lt;br&gt;        [DllImport(&lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"c:\\Libs\\elib.dll"&lt;/span&gt;)]&lt;br&gt;        &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;static&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;extern&lt;/span&gt; &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;string&lt;/span&gt; getResult();&lt;br&gt;&lt;br&gt;&lt;br&gt;        &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;public&lt;/span&gt; String getResponse()&lt;br&gt;        {&lt;br&gt;            String s= getResult();&lt;br&gt;&lt;br&gt;            &lt;span style="color:Blue;background-color:transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;return&lt;/span&gt; &lt;span style="font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"asd"&lt;/span&gt;;&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;&lt;br&gt;    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;To axTest.dll δουλεύει κανονικά αν παραλείψω την γραμμή 31.&lt;br&gt;&lt;br&gt;&lt;br&gt;Τι μπορεί να φταίει?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item></channel></rss>