<?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[Problem mit _com_error]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich habe ein Problem mit einem _com_error. Compilieren funktioniert, beim Ausführen stürzt es ab.</p>
<p>Ich nutze wxWidgets und mein Quelltext befindet sich in der Funktion des Knopfes:</p>
<p>Folgender Quelltext:</p>
<pre><code class="language-cpp">HRESULT hr = DcApp.GetActiveObject(_uuidof(Dcad17::Application));
	DcApp-&gt;BringToTop();
	DcApp-&gt;Visible = true;
	DcDocs = DcApp-&gt;Documents();
	DcDoc = DcApp-&gt;GetActiveDocument();
	DcPts = DcDoc-&gt;CmdPoints();
	double x_start; double y_start; double z_start;
	wxMessageBox(wxT(&quot;Bitte den Startpunkt setzen&quot;));
	DcPts-&gt;GetUserPoint(&amp;x_start,&amp;y_start,&amp;z_start);
        double x[]={0.0,1.5};double y[]={0.0,2.5}; //double z=0.0;
	SAFEARRAY *PktArray;
	SAFEARRAYBOUND sab;
	sab.cElements = 6;
	sab.lLbound = 0;
	PktArray = SafeArrayCreate(VT_R8,1,&amp;sab);
	for (int i=0; i&lt;3; i++)
		{
			long j=3*i;
			SafeArrayPutElement(PktArray,&amp;j,&amp;x[j]);
			j = j+1;
			SafeArrayPutElement(PktArray,&amp;j,&amp;y[j]);
			j = j+1;
			double z=0.0;
			SafeArrayPutElement(PktArray,&amp;j,&amp;z);
		}
	DcPts-&gt;SetCommandPoints(2,&amp;PktArray);
	DcCurve-&gt;Draw();
	SafeArrayDestroy(PktArray);
</code></pre>
<p>Ich vermute einen Überlauf im SAFEARRAY.</p>
<p>Das sind die Meldungen im Ausgabefenster:</p>
<p>Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: _com_error an Speicherposition 0x0013e80c..<br />
Der Thread 'RPC-Rückrufthread' (0xf20) hat mit Code 0 (0x0) geendet.<br />
Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: [rethrow] an Speicherposition 0x00000000..<br />
Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: [rethrow] an Speicherposition 0x00000000..<br />
Eine Ausnahme (erste Chance) bei 0x774dc8ed in TestSafeArray.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00175048.<br />
Unbehandelte Ausnahme bei 0x774dc8ed in TestSafeArray.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00175048.</p>
<p>Das ganze dient der Fernsteuerung eines Zeichenprogrammes. Mit Delphi und VB funktioniert es prima.<br />
Die Beispiele im Developer Handbuch von DesignCAD sind allerdings für C++ Builder 4 und 5, MSVC++ 6 und natürlich VB6 und Delphi usw.<br />
Ich vermute für die COM-Automation bin ich auf Header aus dem MFC angewiesen. Die habe ich in der Express Edition 2008 nicht gefunden.</p>
<p>Bin ich einfach nur zu blöd das SAFEARRAY richtig zusammen zu bauen oder fehlt mir eine Header-Datei?</p>
<p>Bin ich mit meiner Frage hier überhaupt im richtigen Forum?</p>
<p>Gruß</p>
<p>zarathus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277452/problem-mit-_com_error</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 21:51:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277452.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Nov 2010 20:36:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit _com_error on Thu, 18 Nov 2010 22:28:57 GMT]]></title><description><![CDATA[<p>Hallo Zusammen,</p>
<p>ich habe ein Problem mit einem _com_error. Compilieren funktioniert, beim Ausführen stürzt es ab.</p>
<p>Ich nutze wxWidgets und mein Quelltext befindet sich in der Funktion des Knopfes:</p>
<p>Folgender Quelltext:</p>
<pre><code class="language-cpp">HRESULT hr = DcApp.GetActiveObject(_uuidof(Dcad17::Application));
	DcApp-&gt;BringToTop();
	DcApp-&gt;Visible = true;
	DcDocs = DcApp-&gt;Documents();
	DcDoc = DcApp-&gt;GetActiveDocument();
	DcPts = DcDoc-&gt;CmdPoints();
	double x_start; double y_start; double z_start;
	wxMessageBox(wxT(&quot;Bitte den Startpunkt setzen&quot;));
	DcPts-&gt;GetUserPoint(&amp;x_start,&amp;y_start,&amp;z_start);
        double x[]={0.0,1.5};double y[]={0.0,2.5}; //double z=0.0;
	SAFEARRAY *PktArray;
	SAFEARRAYBOUND sab;
	sab.cElements = 6;
	sab.lLbound = 0;
	PktArray = SafeArrayCreate(VT_R8,1,&amp;sab);
	for (int i=0; i&lt;3; i++)
		{
			long j=3*i;
			SafeArrayPutElement(PktArray,&amp;j,&amp;x[j]);
			j = j+1;
			SafeArrayPutElement(PktArray,&amp;j,&amp;y[j]);
			j = j+1;
			double z=0.0;
			SafeArrayPutElement(PktArray,&amp;j,&amp;z);
		}
	DcPts-&gt;SetCommandPoints(2,&amp;PktArray);
	DcCurve-&gt;Draw();
	SafeArrayDestroy(PktArray);
</code></pre>
<p>Ich vermute einen Überlauf im SAFEARRAY.</p>
<p>Das sind die Meldungen im Ausgabefenster:</p>
<p>Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: _com_error an Speicherposition 0x0013e80c..<br />
Der Thread 'RPC-Rückrufthread' (0xf20) hat mit Code 0 (0x0) geendet.<br />
Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: [rethrow] an Speicherposition 0x00000000..<br />
Eine Ausnahme (erste Chance) bei 0x7c812afb in TestSafeArray.exe: Microsoft C++-Ausnahme: [rethrow] an Speicherposition 0x00000000..<br />
Eine Ausnahme (erste Chance) bei 0x774dc8ed in TestSafeArray.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00175048.<br />
Unbehandelte Ausnahme bei 0x774dc8ed in TestSafeArray.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00175048.</p>
<p>Das ganze dient der Fernsteuerung eines Zeichenprogrammes. Mit Delphi und VB funktioniert es prima.<br />
Die Beispiele im Developer Handbuch von DesignCAD sind allerdings für C++ Builder 4 und 5, MSVC++ 6 und natürlich VB6 und Delphi usw.<br />
Ich vermute für die COM-Automation bin ich auf Header aus dem MFC angewiesen. Die habe ich in der Express Edition 2008 nicht gefunden.</p>
<p>Bin ich einfach nur zu blöd das SAFEARRAY richtig zusammen zu bauen oder fehlt mir eine Header-Datei?</p>
<p>Bin ich mit meiner Frage hier überhaupt im richtigen Forum?</p>
<p>Gruß</p>
<p>zarathus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982555</guid><dc:creator><![CDATA[zarathus]]></dc:creator><pubDate>Thu, 18 Nov 2010 22:28:57 GMT</pubDate></item></channel></rss>