<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0"
		xmlns:content="http://purl.org/rss/1.0/modules/content/"
		xmlns:wfw="http://wellformedweb.org/CommentAPI/"
		xmlns:dc="http://purl.org/dc/elements/1.1/"
		xmlns:atom="http://www.w3.org/2005/Atom"

			>

	<channel>
		<title>Fórum Tanca  &#187;  Tópico: Erro PInvoke em c#</title>
		<atom:link href="https://tanca.com.br/forum/?topic=erro-pinvoke-em-c&#038;feed=rss2" rel="self" type="application/rss+xml" />
		<link>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c&#038;feed=rss2</link>
		<description></description>
		<pubDate>Fri, 01 May 2026 16:05:34 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.5.7-5693</generator>
		<language>pt-BR</language>

		
														
					
				<item>
					<guid>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-572</guid>
					<title><![CDATA[Erro PInvoke em c#]]></title>
					<link>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-572</link>
					<pubDate>Fri, 21 Jul 2017 13:50:06 +0000</pubDate>
					<dc:creator>Artur Sousa</dc:creator>

					<description>
						<![CDATA[
						<p>Boa Tarde.</p>
<p>Tentei fazer um conceito de app, para apenas testar a comunicação do AC com o SAT por enquanto, em c#. O código todo é:</p>
<pre><code>using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        //
        [DllImport(&quot;C:\\SAT\\SAT_32.dll&quot;, CallingConvention = CallingConvention.Cdecl)]
        private static extern string ConsultarSAT(int numeroSessao);

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string resultados = ConsultarSAT(GerarNumSessao());
            MessageBox.Show(resultados);
        }
    }
}</code></pre>
<p>Onde &#8220;GerarNumSessao()&#8221; é um simples método que gera um Int32 de 6 dígitos semi-aleatório baseado na hora atual do computador.</p>
<p>Ao compilar para x86 e usar a dll 32 bits, recebo o erro:</p>
<blockquote><p>
Managed Debugging Assistant &#8216;PInvokeStackImbalance&#8217; : &#8216;Uma chamada para a função PInvoke &#8216;WindowsFormsApp1!WindowsFormsApp1.Form1::ConsultarSAT&#8217; desbalanceou a pilha. Isso ocorreu provavelmente porque a assinatura gerenciada de PInvoke não corresponde à assinatura de destino não gerenciada. Verifique se a convenção e o parâmetro de chamada da assinatura de PInvoke são iguais aos da assinatura não gerenciada de destino.&#8217;
</p></blockquote>
<p>Ao compilar em x64 e usar a dll 64 bits, recebo:</p>
<blockquote><p>
Unhandled exception at 0x00000000777CF3E2 (ntdll.dll) in WindowsFormsApp1.exe: 0xC0000374: Um heap foi corrompido (parameters: 0x0000000077848430).
</p></blockquote>
<p>O código roda lisinho no emulador de sat fornecido pela SeFaz, mas no SDK só dá esses erros. Alguém tem alguma luz?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-573</guid>
					<title><![CDATA[Responder a: Erro PInvoke em c#]]></title>
					<link>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-573</link>
					<pubDate>Fri, 21 Jul 2017 14:22:24 +0000</pubDate>
					<dc:creator>Rodrigo R. Muniz</dc:creator>

					<description>
						<![CDATA[
						<p>Passa seu email</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-574</guid>
					<title><![CDATA[Responder a: Erro PInvoke em c#]]></title>
					<link>https://tanca.com.br/forum/?topic=erro-pinvoke-em-c/#post-574</link>
					<pubDate>Fri, 21 Jul 2017 14:23:42 +0000</pubDate>
					<dc:creator>Artur Sousa</dc:creator>

					<description>
						<![CDATA[
						<p>artur (a) trilhast . com . br</p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

