<?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: Problemas ao importar SAT.dll C#</title>
		<atom:link href="https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c&#038;feed=rss2" rel="self" type="application/rss+xml" />
		<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c&#038;feed=rss2</link>
		<description></description>
		<pubDate>Tue, 26 May 2026 04:50:57 +0000</pubDate>
		<generator>http://bbpress.org/?v=2.5.7-5693</generator>
		<language>pt-BR</language>

		
														
					
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-132</guid>
					<title><![CDATA[Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-132</link>
					<pubDate>Wed, 08 Jul 2015 19:32:33 +0000</pubDate>
					<dc:creator>dstecdiego</dc:creator>

					<description>
						<![CDATA[
						<p>Olá pessoal, estou tendo problemas ao importar a dll, programo em C# e toda vez que chamo qualquer função da DLL ele me retorna erro, fiz um teste com o emulador gratuito da sefaz, o comando é recebido com sucesso pelo emulador, mas o retorno da erro no sistema.<br />
Alguém tem alguma idéia do que pode ser?</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-133</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-133</link>
					<pubDate>Wed, 08 Jul 2015 19:35:31 +0000</pubDate>
					<dc:creator>Rodrigo R. Muniz</dc:creator>

					<description>
						<![CDATA[
						<p>Boa Tarde, Diego</p>
<p>Se voce informar qual o erro, ou a mensagem dele, e como vc esta fazendo o DLLImport, fica mais facil</p>
<p>Rodrigo</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-134</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-134</link>
					<pubDate>Wed, 08 Jul 2015 19:43:10 +0000</pubDate>
					<dc:creator>dstecdiego</dc:creator>

					<description>
						<![CDATA[
						<p>[DllImport(&#8220;SAT.dll&#8221;, CallingConvention = CallingConvention.Cdecl)]<br />
public static extern string TesteFimAFim(int numeroSessao, [MarshalAs(UnmanagedType.LPStr)] string codigoDeAtivacao, [MarshalAs(UnmanagedType.LPStr)] string DadosVenda);</p>
<p>string retorno = TesteFimAFim(sessao, &#8220;12345678&#8221;, XML);</p>
<p>e sempre da erro de system.accessviolationexception tentativa de leitura ou gravação em memória protegida.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-135</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-135</link>
					<pubDate>Wed, 08 Jul 2015 19:51:55 +0000</pubDate>
					<dc:creator>Rodrigo R. Muniz</dc:creator>

					<description>
						<![CDATA[
						<p>Boa Tarde, Diego</p>
<p>faça assim:</p>
<p>[DllImport(strSATDLL, CallingConvention = CallingConvention.Cdecl)]<br />
private static extern IntPtr TesteFimAFim(int numeroSessao, [MarshalAs(UnmanagedType.LPStr)] string codigoDeAtivacao,[MarshalAs(UnmanagedType.LPStr)] string dadosVenda);</p>
<p>na logica:</p>
<p>IntPtr ptr = TesteFimAFim(iNumeroSessaoAC, strCodigoAtivacao, strDadosVenda);<br />
string strStatus = Marshal.PtrToStringAnsi(ptr);</p>
<p>Espero q ajude</p>
<p>Rodrigo</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-136</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-136</link>
					<pubDate>Wed, 08 Jul 2015 19:59:02 +0000</pubDate>
					<dc:creator>dstecdiego</dc:creator>

					<description>
						<![CDATA[
						<p>deu certo!!! valeu!</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-152</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-152</link>
					<pubDate>Thu, 16 Jul 2015 14:49:29 +0000</pubDate>
					<dc:creator>Carlos Abreu Jr</dc:creator>

					<description>
						<![CDATA[
						<p>rodrigormuniz, como setar dll dinamicamente strSATDLL?</p>
<p>não tem idéia de como estava apanhando com isso.. obrigado mesmo.</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-154</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-154</link>
					<pubDate>Fri, 17 Jul 2015 17:30:59 +0000</pubDate>
					<dc:creator>Rodrigo R. Muniz</dc:creator>

					<description>
						<![CDATA[
						<p>Boa Tarde, Carlos</p>
<p>Desculpe, não havia mais acessado o forum.</p>
<p>Declare uma classe assim:</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using System.Runtime.InteropServices;</p>
<p>static class NativeMethods<br />
{<br />
    [DllImport(&#8220;kernel32.dll&#8221;)]<br />
    public static extern IntPtr LoadLibrary(string dllToLoad);</p>
<p>    [DllImport(&#8220;kernel32.dll&#8221;)]<br />
    public static extern IntPtr GetProcAddress(IntPtr hModule, string procedureName);</p>
<p>    [DllImport(&#8220;kernel32.dll&#8221;)]<br />
    public static extern bool FreeLibrary(IntPtr hModule);<br />
}</p>
<p>na sua classe de implementação:</p>
<p>        static IntPtr dllHandle;<br />
        //<br />
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]<br />
        private delegate IntPtr ConsultarStatusOperacional(int numeroSessao, [MarshalAs(UnmanagedType.LPStr)] string codigoDeAtivacao);<br />
        //</p>
<p>e na sua lógica:</p>
<p>                string strSATDLL_PARAMETRIZADO = &#8220;SAT_OUTRO.dll&#8221;;<br />
                string strSATDLL = string.Empty;<br />
                if (strMsg.ToLower().Equals(&#8220;tanca&#8221;))<br />
                {<br />
                    strSATDLL = &#8220;SAT.dll&#8221;;<br />
                }<br />
                else<br />
                {<br />
                    strSATDLL = strSATDLL_PARAMETRIZADO;<br />
                }<br />
                IntPtr ptr = NativeMethods.LoadLibrary(strSATDLL);<br />
                IntPtr pAddressOfFunctionToCall = NativeMethods.GetProcAddress(ptr, &#8220;ConsultarStatusOperacional&#8221;);<br />
                ConsultarStatusOperacional consultaSat = (ConsultarStatusOperacional)Marshal.GetDelegateForFunctionPointer(<br />
                                                                                     pAddressOfFunctionToCall,<br />
                                                                                     typeof(ConsultarStatusOperacional));<br />
                strStatus = Marshal.PtrToStringAnsi(consultaSat(iNumeroSessaoAC, strCodigoAtivacao));</p>
<p>A condição acima, é logica de exemplo. É obvio que sua intenção é parametrizar a chamada.<br />
Mas, embora o Sefaz tenha recomendado a padronização da Sat.dll, os fabricantes seguiram a especificação somente nos entrypoints da mesma ( metodos ). Mas, na definição dos parametros destes metodos, o seguiram somente em quantidade de parametros, não em sua especificação. Assim, o numero da sessão é inteiro para um fabricante, em outro, deve ser passado como string, mas em seu conteudo como inteiro. Desta forma, voce ate consegue parametrizar a dll de chamada, mas deve tomar cuidado com a passagem dos parametros ao metodo chamado.</p>
<p>Se ajudou, propague, se tiver uma solução, auxilie, propague, divulgue. </p>
<p>ATT</p>
<p>Rodrigo</p>
						]]>
					</description>

					
					
				</item>

			
				<item>
					<guid>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-525</guid>
					<title><![CDATA[Responder a: Problemas ao importar SAT.dll C#]]></title>
					<link>https://tanca.com.br/forum/?topic=problemas-ao-importar-sat-dll-c/#post-525</link>
					<pubDate>Mon, 27 Feb 2017 14:13:16 +0000</pubDate>
					<dc:creator>Robinson Soares</dc:creator>

					<description>
						<![CDATA[
						<p>Bom dia Rodrigo Muniz,</p>
<p>Sobre acessar a DLL dinamicamente vc teria um exemplo para me enviar por e-mail?</p>
<p>grato</p>
						]]>
					</description>

					
					
				</item>

					
		
	</channel>
	</rss>

