<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/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>Visual Basic .NET</title><link>http://forums.asp.net/36.aspx</link><description>Discussions/Questions about the Visual Basic .NET language. &lt;a href="http://aspadvice.com/SignUp/list.aspx?l=14&amp;c=23" target="_blank"&gt;Email List&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Help converting unmanaged C struct</title><link>http://forums.asp.net/thread/3272131.aspx</link><pubDate>Thu, 02 Jul 2009 19:27:30 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:3272131</guid><dc:creator>ToddWolff</dc:creator><author>ToddWolff</author><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/3272131.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=36&amp;PostID=3272131</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m trying to convert an unmanaged C struct into VB.NET structure. No matter what I try I am getting the error...&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
&lt;b&gt;&lt;i&gt;Cannot marshal &amp;#39;parameter #1&amp;#39;: Invalid managed/unmanaged type combination (this value type must be paired with Struct).&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Any help that you can provide is greatly appreciated.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here is the C struct...&lt;/p&gt;&lt;p&gt;&lt;pre name="code" class="c++"&gt;&amp;#39;/*****************************************************************************/&lt;br /&gt;&amp;#39;/*   Parameter list for z4geterror()                                         */&lt;br /&gt;&amp;#39;/*   NOTE:  Only fields containing +1 in the length are null terminated.     */&lt;br /&gt;&amp;#39;/*****************************************************************************/&lt;br /&gt;&amp;#39;typedef struct tagError&lt;br /&gt;&amp;#39;{&lt;br /&gt;&amp;#39;    int  iErrorCode;              /* Error Code                              */&lt;br /&gt;&amp;#39;    char strErrorMessage[100+1];  /* Error Message                           */&lt;br /&gt;&amp;#39;    int  iFileCode;               /* File Code                               */&lt;br /&gt;&amp;#39;    char strFileName[26+1];       /* File Name                               */&lt;br /&gt;&amp;#39;    char strDiagnostics[300+1];   /* Diagnostic Message                      */&lt;br /&gt;&amp;#39;} Z4_ERROR;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; I have tried this but it doesn&amp;#39;t work...&lt;/p&gt;&lt;p&gt;&lt;pre name="code" class="vb.net"&gt;&amp;lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)&amp;gt; _&lt;br /&gt;Public Structure Z4_ERROR&lt;br /&gt;    Public iErrorCode As Int32&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=101)&amp;gt; Public strErrorMessage As String&lt;br /&gt;    Public iFileCode As Int32&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=27)&amp;gt; Public strFileName As String&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, sizeconst:=301)&amp;gt; Public strDiagnostics As String&lt;br /&gt;End Structure&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; I have also tried this...&lt;/p&gt;&lt;p&gt;&lt;pre name="code" class="vb.net"&gt;&amp;lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Ansi)&amp;gt; _&lt;br /&gt;Public Structure Z4_ERROR&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.I4)&amp;gt; Public iErrorCode As Int32&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=101)&amp;gt; Public strErrorMessage As String&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.I4)&amp;gt; Public iFileCode As Int32&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=27)&amp;gt; Public strFileName As String&lt;br /&gt;    &amp;lt;MarshalAs(UnmanagedType.ByValTStr, sizeconst:=301)&amp;gt; Public strDiagnostics As String&lt;br /&gt;End Structure&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;&lt;/p&gt;</description></item></channel></rss>