<?xml version="1.0" encoding="iso-8859-9" ?>
<?xml-stylesheet type="text/xsl" href="RSS_xslt_style.asp" version="1.0" ?>
<rss version="2.0" xmlns:WebWizForums="http://syndication.webwizguide.com/rss_namespace/">
 <channel>
  <title>Datakent Forum : c# da delphi ile yazılan dll kullanma</title>
  <link>http://forum.datakent.com/</link>
  <description>XML içerik linki; Datakent Forum : C# &amp; ASP.NET : c# da delphi ile yazılan dll kullanma</description>
  <pubDate>Thu, 23 Apr 2026 01:30:39 +0000</pubDate>
  <lastBuildDate>Wed, 15 Feb 2012 16:31:43 +0000</lastBuildDate>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Web Wiz Forums 9.54</generator>
  <ttl>360</ttl>
  <WebWizForums:feedURL>forum.datakent.com/RSS_post_feed.asp?TID=2308</WebWizForums:feedURL>
  <image>
   <title>Datakent Forum</title>
   <url>http://forum.datakent.com/forum_images/datakent.com_forums.png</url>
   <link>http://forum.datakent.com/</link>
  </image>
  <item>
   <title>c# da delphi ile yazılan dll kullanma :   g&#252;zel &#231;al&#305;&#351;ma </title>
   <link>http://forum.datakent.com/forum_posts.asp?TID=2308&amp;PID=4908#4908</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="http://forum.datakent.com/member_profile.asp?PF=1" rel="nofollow">murat turan</a><br /><strong>Konu:</strong> 2308<br /><strong>Gönderim Zamanı:</strong> 15.Subat.2012 Saat 16:31<br /><br />güzel çalışma]]>
   </description>
   <pubDate>Wed, 15 Feb 2012 16:31:43 +0000</pubDate>
   <guid isPermaLink="true">http://forum.datakent.com/forum_posts.asp?TID=2308&amp;PID=4908#4908</guid>
  </item> 
  <item>
   <title>c# da delphi ile yazılan dll kullanma :   Yazd&#305;&#287;&#305;m fonksiyon sa&#231;ma da...</title>
   <link>http://forum.datakent.com/forum_posts.asp?TID=2308&amp;PID=4903#4903</link>
   <description>
    <![CDATA[<strong>Yazar:</strong> <a href="http://forum.datakent.com/member_profile.asp?PF=4094" rel="nofollow">aziz.alkurt</a><br /><strong>Konu:</strong> 2308<br /><strong>Gönderim Zamanı:</strong> 10.Subat.2012 Saat 19:10<br /><br />Yazdığım fonksiyon saçma da olsa kullanımı göstermek için mükkemmel ölçüde<br><br>Delphi tarafı<br>-------------------------------------------------------------------------------------------<br>library Project2;<br>uses SysUtils,Classes;<br>type TByteArr = array of byte;<br>var MemStr:TMemoryStream;<br><br>function prepareFile(zx:TByteArr; out k:integer):Pointer;export; stdcall;<br>var b:byte;<br>begin<br>MemStr := TMemoryStream.Create;<br>b:=$61;<br>MemStr.Write(b,1);<br>MemStr.Write(zx&#091;0&#093;,length(zx));<br>k:=MemStr.size;<br>Result:=MemStr.Memory;<br>end;<br>procedure DisposeMemStr();export; stdcall;<br>begin<br>&nbsp;FreeAndNil(MemStr);<br>end;<br><br>function isMemStrNULL():boolean;export; stdcall;<br>begin<br>&nbsp; if Assigned(MemStr) then<br>&nbsp; Result:=false<br>&nbsp; else<br>&nbsp; Result:=true;<br>end;<br>exports prepareFile,DisposeMemStr,isMemStrNULL;<br>begin<br>end.<br>-------------------------------------------------------------------------------------------<br><br>C# tarafı<br>-------------------------------------------------------------------------------------------<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#091;DllImport("d:/dlls/Project2.dll", EntryPoint = "prepareFile", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)&#093;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern IntPtr prepareFile(byte&#091;&#093; bytes,ref int l);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#091;DllImport("d:/dlls/Project2.dll", EntryPoint = "DisposeMemStr", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)&#093;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern void DisposeMemStr();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#091;DllImport("d:/dlls/Project2.dll", EntryPoint = "isMemStrNULL", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)&#093;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static extern bool isMemStrNULL(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static void Main(string&#091;&#093; args)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte&#091;&#093; bytes = File.ReadAllBytes("d:/denemeImp3.txt");<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int l = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IntPtr b = prepareFile(bytes,ref l);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; byte&#091;&#093; bx = new byte&#091; l &#093;;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Marshal.Copy(b, bx, 0,l);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; File.WriteAllBytes("d:/denemeImp2.txt",bx);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bool x = isMemStrNULL();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DisposeMemStr();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x= isMemStrNULL();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>-------------------------------------------------------------------------------------------<br><br><br>delphiden aldığım memorystreamın başlagıç adresi (Pointer) ve uzunluğu. Bu ikisini bildiğim zaman zaten Marshall ile RAM dan onu okuyabiliyorum. Delphide MemStr nesnesini global yapmamın sebebi<br>işlemim bittikten sonra memory den uçurmak için. Bu işlem sonrası istiyorsanız Marshall ile o adresde anlamlı data var mı diye bakabilirsiniz.<div></div><br><div>-----------</div><div>Calling a Delphi DLL from C#, Use DLL compiled in Delphi 7 in C#</div><span style="font-size:10px"><br /><br />Düzenleyen murat turan - 15.Subat.2012 Saat 16:33</span>]]>
   </description>
   <pubDate>Fri, 10 Feb 2012 19:10:31 +0000</pubDate>
   <guid isPermaLink="true">http://forum.datakent.com/forum_posts.asp?TID=2308&amp;PID=4903#4903</guid>
  </item> 
 </channel>
</rss>