<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Text aus Zwischenablage führt zu Absturz]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir das mal jemand erklären...<br />
Ich lese hiermit den Text aus der Zwischenablage aus</p>
<pre><code class="language-cpp">char * buffer; 
if(OpenClipboard()) 
{ 
	buffer = (char*)GetClipboardData(CF_TEXT); 
	CloseClipboard();
}
</code></pre>
<p>Das weise ich dann einer Variable vom Typ CString zu, die mit einem Edit-Feld verknüpft ist</p>
<pre><code class="language-cpp">CString m_sUrl = buffer;
</code></pre>
<p>wenn der Text aus der Zwischenablage eine gültige URL ist, wird die Seite in einer Datei gespeichert</p>
<pre><code class="language-cpp">// Namen einer temporären Datei ermitteln
// und in m_strTmpFile speichern
if (!GetTmpFileName())
{
	m_dwLastError = GetLastError();
	return FALSE;
}
// Download starten und in Datei speichern

m_strTmpFile = &quot;C:\\test.dat&quot;;
CInternetSession pInetSession; 
CStdioFile*      pNetFile; 
int nFileSize      = 0; 
int nFileSizeBytes = 0; 
int nBytesToWrite  = 0; 
char cReadBuffer [512];
try 
{ 
	pNetFile = pInetSession.OpenURL(m_strUrl, 1, 
				INTERNET_FLAG_TRANSFER_ASCII  | INTERNET_FLAG_RELOAD);
	if (pNetFile == NULL)
	{
		m_dwLastError = GetLastError();
		return FALSE;
	}
	nFileSizeBytes = (int) pNetFile-&gt;SeekToEnd(); 
	pNetFile-&gt;SeekToBegin(); 
	nFileSize = nFileSizeBytes / 1024; 

	CFile pLocalFile(m_strTmpFile, 
   			     CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); 
	while (nBytesToWrite = pNetFile-&gt;Read(cReadBuffer, 512)) 
	{ 
		pLocalFile.Write(cReadBuffer, nBytesToWrite); 
	} 
	pInetSession.Close();
} 

catch(CInternetException *IE) 
{ 	
	return FALSE;
}						 
return TRUE;
</code></pre>
<p>nun das Problem:<br />
wenn ich so verfahre gibt es immer beim Aufruf von SeekToEnd() eine Absturz... die CInternetException enthält dann die Fehlernummer 12016, die ich in der MSDN nicht gefunden hab... wenn ich aber den Text in das Edit-Feld von Hand eingebe (haargenau die gleiche URL, nur mit STRG+V eingefügt) funktioniert alles bestens.<br />
Hat jemand eine Idee woran das liegen kann? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Gruss,<br />
Michel</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/73176/text-aus-zwischenablage-führt-zu-absturz</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 06:20:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/73176.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 May 2004 21:46:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Text aus Zwischenablage führt zu Absturz on Thu, 06 May 2004 21:46:42 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann mir das mal jemand erklären...<br />
Ich lese hiermit den Text aus der Zwischenablage aus</p>
<pre><code class="language-cpp">char * buffer; 
if(OpenClipboard()) 
{ 
	buffer = (char*)GetClipboardData(CF_TEXT); 
	CloseClipboard();
}
</code></pre>
<p>Das weise ich dann einer Variable vom Typ CString zu, die mit einem Edit-Feld verknüpft ist</p>
<pre><code class="language-cpp">CString m_sUrl = buffer;
</code></pre>
<p>wenn der Text aus der Zwischenablage eine gültige URL ist, wird die Seite in einer Datei gespeichert</p>
<pre><code class="language-cpp">// Namen einer temporären Datei ermitteln
// und in m_strTmpFile speichern
if (!GetTmpFileName())
{
	m_dwLastError = GetLastError();
	return FALSE;
}
// Download starten und in Datei speichern

m_strTmpFile = &quot;C:\\test.dat&quot;;
CInternetSession pInetSession; 
CStdioFile*      pNetFile; 
int nFileSize      = 0; 
int nFileSizeBytes = 0; 
int nBytesToWrite  = 0; 
char cReadBuffer [512];
try 
{ 
	pNetFile = pInetSession.OpenURL(m_strUrl, 1, 
				INTERNET_FLAG_TRANSFER_ASCII  | INTERNET_FLAG_RELOAD);
	if (pNetFile == NULL)
	{
		m_dwLastError = GetLastError();
		return FALSE;
	}
	nFileSizeBytes = (int) pNetFile-&gt;SeekToEnd(); 
	pNetFile-&gt;SeekToBegin(); 
	nFileSize = nFileSizeBytes / 1024; 

	CFile pLocalFile(m_strTmpFile, 
   			     CFile::modeCreate | CFile::modeWrite | CFile::typeBinary); 
	while (nBytesToWrite = pNetFile-&gt;Read(cReadBuffer, 512)) 
	{ 
		pLocalFile.Write(cReadBuffer, nBytesToWrite); 
	} 
	pInetSession.Close();
} 

catch(CInternetException *IE) 
{ 	
	return FALSE;
}						 
return TRUE;
</code></pre>
<p>nun das Problem:<br />
wenn ich so verfahre gibt es immer beim Aufruf von SeekToEnd() eine Absturz... die CInternetException enthält dann die Fehlernummer 12016, die ich in der MSDN nicht gefunden hab... wenn ich aber den Text in das Edit-Feld von Hand eingebe (haargenau die gleiche URL, nur mit STRG+V eingefügt) funktioniert alles bestens.<br />
Hat jemand eine Idee woran das liegen kann? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Gruss,<br />
Michel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/515675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/515675</guid><dc:creator><![CDATA[Der Michel]]></dc:creator><pubDate>Thu, 06 May 2004 21:46:42 GMT</pubDate></item><item><title><![CDATA[Reply to Text aus Zwischenablage führt zu Absturz on Sat, 08 May 2004 13:17:30 GMT]]></title><description><![CDATA[<p>UpdateData(TRUE/FALSE) gemacht? Wenns dann immernoch nich geht, schieb den Source irgendwo hoch, dann schau ichs mir an</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516628</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Sat, 08 May 2004 13:17:30 GMT</pubDate></item><item><title><![CDATA[Reply to Text aus Zwischenablage führt zu Absturz on Sat, 08 May 2004 19:28:31 GMT]]></title><description><![CDATA[<p>GetClipboardData liefert keinen Zeiger auf die Daten!<br />
Die Funktion liefert ein Handle, das du mit GlobalLock/GlobalUnlock &quot;auflösen&quot; kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/516783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/516783</guid><dc:creator><![CDATA[tag]]></dc:creator><pubDate>Sat, 08 May 2004 19:28:31 GMT</pubDate></item></channel></rss>