<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум Рутокен &mdash; Чтение файла с использованием rtAPIlt из C#]]></title>
		<link>https://forum.rutoken.ru/topic/2389/</link>
		<atom:link href="https://forum.rutoken.ru/feed/rss/topic/2389/" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Чтение файла с использованием rtAPIlt из C#».]]></description>
		<lastBuildDate>Wed, 16 Mar 2016 04:54:25 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Чтение файла с использованием rtAPIlt из C#]]></title>
			<link>https://forum.rutoken.ru/post/9418/#p9418</link>
			<description><![CDATA[<p>Спасибо! Проблема была действительно в последнем параметре. Теперь всё работает.</p>]]></description>
			<author><![CDATA[null@example.com (rowexn)]]></author>
			<pubDate>Wed, 16 Mar 2016 04:54:25 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9418/#p9418</guid>
		</item>
		<item>
			<title><![CDATA[Re: Чтение файла с использованием rtAPIlt из C#]]></title>
			<link>https://forum.rutoken.ru/post/9417/#p9417</link>
			<description><![CDATA[<p>пока вот такое нашли:</p><p>var buff = new byte[6];<br />uint length = 0;<br />fixed (byte* pBuff = &amp;buff[0])<br />byte* outBuff = pBuff; var err = RtAPIltImport.rtlReadFile(file, 0, 6, outBuff, &amp;length); <br />в length надо класть длину массива, после того, как размер файла известен.</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Tue, 15 Mar 2016 15:03:26 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9417/#p9417</guid>
		</item>
		<item>
			<title><![CDATA[Re: Чтение файла с использованием rtAPIlt из C#]]></title>
			<link>https://forum.rutoken.ru/post/9416/#p9416</link>
			<description><![CDATA[<p>будьте добры пришлите CS файлик с описанием dllimport и пример вызова функции?</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Tue, 15 Mar 2016 14:15:32 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9416/#p9416</guid>
		</item>
		<item>
			<title><![CDATA[Re: Чтение файла с использованием rtAPIlt из C#]]></title>
			<link>https://forum.rutoken.ru/post/9415/#p9415</link>
			<description><![CDATA[<p>спасибо за ваш вопрос, посмотрим.</p>]]></description>
			<author><![CDATA[null@example.com (Кирилл Мещеряков)]]></author>
			<pubDate>Tue, 15 Mar 2016 14:14:12 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9415/#p9415</guid>
		</item>
		<item>
			<title><![CDATA[Чтение файла с использованием rtAPIlt из C#]]></title>
			<link>https://forum.rutoken.ru/post/9414/#p9414</link>
			<description><![CDATA[<p>Добрый день!<br />Описал DllImport для функций библиотеки rtAPIlt.dll. Практически все функции работают корректно (включая создание директорий и файлов, запись&nbsp; файла, ...). Проблема только с функцией rtlReadFile.<br />Перебрал все возможные способы импорта функции и передаваемых параметров. При вызове всегда возвращается 0x8007007a (Область данных, переданная по системному вызову, слишком мала). При этом <br />в dataLen возвращается правильная длина файла, а буфер с данными не заполняется.<br />Пример одного из вариантов импорта:<br />&nbsp; &nbsp; &nbsp; &nbsp; [DllImport(&quot;rtAPIlt.dll&quot;, EntryPoint = &quot;rtlReadFile&quot;, CharSet = CharSet.Ansi,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SetLastError = true, CallingConvention = CallingConvention.StdCall)]<br />&nbsp; &nbsp; &nbsp; &nbsp; public static extern unsafe uint rtlReadFile(RTLFile file, uint offset, uint length, byte* data, uint* dataLen);</p><p>Вызов:<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var buff = new byte[6];<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; uint length = 0;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fixed (byte* pBuff = &amp;buff[0])<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte* outBuff = pBuff;<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var err = RtAPIltImport.rtlReadFile(file, 0, 6, outBuff, &amp;length);<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</p><p>Пробовал варианты с IntPtr и много других вариантов, поведение не меняется.</p>]]></description>
			<author><![CDATA[null@example.com (rowexn)]]></author>
			<pubDate>Tue, 15 Mar 2016 11:32:06 +0000</pubDate>
			<guid>https://forum.rutoken.ru/post/9414/#p9414</guid>
		</item>
	</channel>
</rss>
