<?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[Probleme bei DLL Erzeugung]]></title><description><![CDATA[<p>Hallo ihr Fachmänner,</p>
<p>ich will eine DLL erzeugen und habe zu diesem Zwecke einen Code erstellt. Nun enstehen jedoch beim kompilieren über 100 Fehler und der Vorgang wird abgebrochen... <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="😕"
    /><br />
Ich denke das dies ein einzelner Syntax Fehler sein dürfte, nur finde ich ihn nicht.<br />
Vielleicht weiß ja jemand von euch wo der Hacken ist und es ist keine größere Sache.</p>
<p>#include &lt;windows.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;iterator&gt;<br />
#include &lt;sstream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;vector&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data);<br />
int __declspec(dllexport) APIENTRY UserParamNames(char *data);</p>
<p>BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)<br />
{<br />
return TRUE;<br />
}</p>
<p>/* the data is stored as follows:<br />
ndata = the number of elements in the array data<br />
data[0] = the total number of values in the passed data array<br />
data[1] = x<br />
data[2] = y<br />
data[3] = z<br />
data[4] = wavelength in µm<br />
data[5] = millimeters per unit length (1.0 for mm, 25.4 for inches, 10.0 for cm and 1000.0 for meters)<br />
data[6] = n (to be computed by the dll and returned)<br />
data[7] = n * dn/dx (to be computed by the dll and returned)<br />
data[8] = n * dn/dy (to be computed by the dll and returned)<br />
data[9] = n * dn/dz (to be computed by the dll and returned)<br />
data[10] = parameter 1 from user input<br />
data[11] = parameter 2 from user input<br />
etc... up to data[maxdata] where maxdata = int(data[0])</p>
<p>The DLL must compute data 6 through 9 given the other data,<br />
and return 0 if it works; else return -1<br />
*/</p>
<p>// Modified to be periodic with period dx and dy if both are greater than zero to support arrays</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data)<br />
{<br />
long double r, index, rKugel, nKritisch, aktMin, aktIndex, x, y, z, dx, dy, dz;</p>
<p>x = data[1];<br />
y = data[2];<br />
z = data[3];<br />
nKritisch = data[10];<br />
rKugel = data[11];<br />
dx = data[12];<br />
dy= data[13];<br />
dz= data[14];</p>
<p>using namespace std;</p>
<p>int main(void) {<br />
ifstream ifs(&quot;C:\\Simulationsergebnisse.txt&quot;);</p>
<p>if (!ifs) {<br />
cerr &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot; &lt;&lt; endl;<br />
exit(-1);<br />
}</p>
<p>vector&lt;vector&lt;double&gt; &gt; matrix;<br />
while (ifs) {<br />
string line;<br />
getline(ifs, line);<br />
istringstream iss(line);<br />
vector&lt;double&gt; values;<br />
copy(istream_iterator&lt;double&gt;(iss),<br />
istream_iterator&lt;double&gt;(),<br />
back_insert_iterator&lt;vector&lt;double&gt; &gt;(values));<br />
if (values.size() &gt; 0) matrix.push_back(values);<br />
}</p>
<p>if (dx &gt; 0 &amp;&amp; dy &gt; 0 &amp;&amp; dz &gt; 0)<br />
{<br />
// adjust to center of array<br />
if (x &gt; +0.5*dx) x -= dx*(double)ceil(+(x - 0.5<em>dx)/dx);<br />
if (x &lt; -0.5*dx) x += dx*(double)ceil(-(x + 0.5</em>dx)/dx);<br />
if (y &gt; +0.5*dy) y -= dy*(double)ceil(+(y - 0.5<em>dy)/dy);<br />
if (y &lt; -0.5*dy) y += dy*(double)ceil(-(y + 0.5</em>dy)/dy);<br />
if (z &gt; +0.5*dz) z -= dz*(double)ceil(+(z - 0.5<em>dz)/dz);<br />
if (z &lt; -0.5*dz) z += dz*(double)ceil(-(z + 0.5</em>dz)/dz);<br />
}</p>
<p>r = sqrt(x*x + y*y + z*z);</p>
<p>for (int q = 0; q &lt; matrix.size(); ++q){<br />
if (r &lt;= rKugel )<br />
{<br />
index = 1; //Frage innerhalb der Kugel index auf 1 oder 0 setzen<br />
}<br />
else if (abs(matrix[q][0] - r)&lt; aktMin)<br />
{<br />
aktMin = abs(matrix [q] [0] -r);<br />
aktIndex = q;<br />
index = sqrt(1-(matrix[aktIndex][1]/nKritisch));<br />
}<br />
else<br />
{<br />
index = 1;<br />
}</p>
<p>data[6] = index;</p>
<p>if (index &lt; 0.0)<br />
{<br />
return -1;<br />
}</p>
<p>/* now the derivatives, note they are multiplied by index */</p>
<p>if (r &lt;= rKugel)<br />
{<br />
data[7] = 0;<br />
data[8] = 0;<br />
data[9] = 0;<br />
}<br />
else<br />
{<br />
data[7] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*x*index/r;<br />
data[8] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*y*index/r;<br />
data[9] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*z*index/r;<br />
}</p>
<p>return 0;<br />
}</p>
<p>int __declspec(dllexport) APIENTRY UserParamNames(char *data)<br />
{<br />
/* this function returns the name of the parameter requested */<br />
int i;<br />
i = (int) data[0];<br />
strcpy(data,&quot;&quot;);<br />
if (i == 1) strcpy(data,&quot;nKritisch&quot;);<br />
if (i == 2) strcpy(data,&quot;rKugel&quot;);<br />
if (i == 3) strcpy(data,&quot;Array dx&quot;);<br />
if (i == 4) strcpy(data,&quot;Array dy&quot;);<br />
if (i == 5) strcpy(data,&quot;Array dz&quot;);<br />
return 0;<br />
}</p>
<p>Vielen Dank für eure Unterterstützung</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264487/probleme-bei-dll-erzeugung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 19:55:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264487.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Apr 2010 12:07:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 12:07:52 GMT]]></title><description><![CDATA[<p>Hallo ihr Fachmänner,</p>
<p>ich will eine DLL erzeugen und habe zu diesem Zwecke einen Code erstellt. Nun enstehen jedoch beim kompilieren über 100 Fehler und der Vorgang wird abgebrochen... <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="😕"
    /><br />
Ich denke das dies ein einzelner Syntax Fehler sein dürfte, nur finde ich ihn nicht.<br />
Vielleicht weiß ja jemand von euch wo der Hacken ist und es ist keine größere Sache.</p>
<p>#include &lt;windows.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;iterator&gt;<br />
#include &lt;sstream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;vector&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data);<br />
int __declspec(dllexport) APIENTRY UserParamNames(char *data);</p>
<p>BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)<br />
{<br />
return TRUE;<br />
}</p>
<p>/* the data is stored as follows:<br />
ndata = the number of elements in the array data<br />
data[0] = the total number of values in the passed data array<br />
data[1] = x<br />
data[2] = y<br />
data[3] = z<br />
data[4] = wavelength in µm<br />
data[5] = millimeters per unit length (1.0 for mm, 25.4 for inches, 10.0 for cm and 1000.0 for meters)<br />
data[6] = n (to be computed by the dll and returned)<br />
data[7] = n * dn/dx (to be computed by the dll and returned)<br />
data[8] = n * dn/dy (to be computed by the dll and returned)<br />
data[9] = n * dn/dz (to be computed by the dll and returned)<br />
data[10] = parameter 1 from user input<br />
data[11] = parameter 2 from user input<br />
etc... up to data[maxdata] where maxdata = int(data[0])</p>
<p>The DLL must compute data 6 through 9 given the other data,<br />
and return 0 if it works; else return -1<br />
*/</p>
<p>// Modified to be periodic with period dx and dy if both are greater than zero to support arrays</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data)<br />
{<br />
long double r, index, rKugel, nKritisch, aktMin, aktIndex, x, y, z, dx, dy, dz;</p>
<p>x = data[1];<br />
y = data[2];<br />
z = data[3];<br />
nKritisch = data[10];<br />
rKugel = data[11];<br />
dx = data[12];<br />
dy= data[13];<br />
dz= data[14];</p>
<p>using namespace std;</p>
<p>int main(void) {<br />
ifstream ifs(&quot;C:\\Simulationsergebnisse.txt&quot;);</p>
<p>if (!ifs) {<br />
cerr &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot; &lt;&lt; endl;<br />
exit(-1);<br />
}</p>
<p>vector&lt;vector&lt;double&gt; &gt; matrix;<br />
while (ifs) {<br />
string line;<br />
getline(ifs, line);<br />
istringstream iss(line);<br />
vector&lt;double&gt; values;<br />
copy(istream_iterator&lt;double&gt;(iss),<br />
istream_iterator&lt;double&gt;(),<br />
back_insert_iterator&lt;vector&lt;double&gt; &gt;(values));<br />
if (values.size() &gt; 0) matrix.push_back(values);<br />
}</p>
<p>if (dx &gt; 0 &amp;&amp; dy &gt; 0 &amp;&amp; dz &gt; 0)<br />
{<br />
// adjust to center of array<br />
if (x &gt; +0.5*dx) x -= dx*(double)ceil(+(x - 0.5<em>dx)/dx);<br />
if (x &lt; -0.5*dx) x += dx*(double)ceil(-(x + 0.5</em>dx)/dx);<br />
if (y &gt; +0.5*dy) y -= dy*(double)ceil(+(y - 0.5<em>dy)/dy);<br />
if (y &lt; -0.5*dy) y += dy*(double)ceil(-(y + 0.5</em>dy)/dy);<br />
if (z &gt; +0.5*dz) z -= dz*(double)ceil(+(z - 0.5<em>dz)/dz);<br />
if (z &lt; -0.5*dz) z += dz*(double)ceil(-(z + 0.5</em>dz)/dz);<br />
}</p>
<p>r = sqrt(x*x + y*y + z*z);</p>
<p>for (int q = 0; q &lt; matrix.size(); ++q){<br />
if (r &lt;= rKugel )<br />
{<br />
index = 1; //Frage innerhalb der Kugel index auf 1 oder 0 setzen<br />
}<br />
else if (abs(matrix[q][0] - r)&lt; aktMin)<br />
{<br />
aktMin = abs(matrix [q] [0] -r);<br />
aktIndex = q;<br />
index = sqrt(1-(matrix[aktIndex][1]/nKritisch));<br />
}<br />
else<br />
{<br />
index = 1;<br />
}</p>
<p>data[6] = index;</p>
<p>if (index &lt; 0.0)<br />
{<br />
return -1;<br />
}</p>
<p>/* now the derivatives, note they are multiplied by index */</p>
<p>if (r &lt;= rKugel)<br />
{<br />
data[7] = 0;<br />
data[8] = 0;<br />
data[9] = 0;<br />
}<br />
else<br />
{<br />
data[7] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*x*index/r;<br />
data[8] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*y*index/r;<br />
data[9] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*z*index/r;<br />
}</p>
<p>return 0;<br />
}</p>
<p>int __declspec(dllexport) APIENTRY UserParamNames(char *data)<br />
{<br />
/* this function returns the name of the parameter requested */<br />
int i;<br />
i = (int) data[0];<br />
strcpy(data,&quot;&quot;);<br />
if (i == 1) strcpy(data,&quot;nKritisch&quot;);<br />
if (i == 2) strcpy(data,&quot;rKugel&quot;);<br />
if (i == 3) strcpy(data,&quot;Array dx&quot;);<br />
if (i == 4) strcpy(data,&quot;Array dy&quot;);<br />
if (i == 5) strcpy(data,&quot;Array dz&quot;);<br />
return 0;<br />
}</p>
<p>Vielen Dank für eure Unterterstützung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879309</guid><dc:creator><![CDATA[Egbert82]]></dc:creator><pubDate>Thu, 08 Apr 2010 12:07:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 12:19:17 GMT]]></title><description><![CDATA[<p>Cpp Tags und Fehlermeldungen auch posten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879318</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Thu, 08 Apr 2010 12:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 13:35:31 GMT]]></title><description><![CDATA[<p>Hier habe ich einmal Beispielhaft die Fehlermeldungen rauskopiert.</p>
<p>1&gt;c:\programme\microsoft visual studio 9.0\vc\include\cstring(21) : error C2143: Syntaxfehler: Es fehlt '{' vor ':'<br />
1&gt;c:\programme\microsoft visual studio 9.0\vc\include\cstring(21) : error C2059: Syntaxfehler: ':'</p>
<p>1&gt;c:\programme\microsoft visual studio 9.0\vc\include\cstdio(39) : error C2143: Syntaxfehler: Es fehlt '{' vor ':'<br />
1&gt;c:\programme\microsoft visual studio 9.0\vc\include\cstdio(39) : error C2059: Syntaxfehler: ':'</p>
<p>ich denke das der Fehler an den include Dateien liegt und nicht an der Programmierung.</p>
<p>Ich habe den Code einfachhalber noch etwas umgeschrieben</p>
<p>#include &lt;windows.h&gt;<br />
#include &lt;math.h&gt;<br />
#include &lt;string.h&gt;<br />
#include &lt;algorithm&gt;<br />
#include &lt;fstream&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;iterator&gt;<br />
#include &lt;sstream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;vector&gt;<br />
#include &lt;stdlib.h&gt;</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data);<br />
int __declspec(dllexport) APIENTRY UserParamNames(char *data);</p>
<p>BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)<br />
{<br />
return TRUE;<br />
}</p>
<p>int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data)<br />
{<br />
long double r, index, rKugel, nKritisch, aktMin, aktIndex, x, y, z, dx, dy, dz;</p>
<p>x = data[1];<br />
y = data[2];<br />
z = data[3];<br />
nKritisch = data[10];<br />
rKugel = data[11];<br />
dx = data[12];<br />
dy= data[13];<br />
dz= data[14];</p>
<p>if (dx &gt; 0 &amp;&amp; dy &gt; 0 &amp;&amp; dz &gt; 0)<br />
{<br />
if (x &gt; +0.5*dx) x -= dx*(double)ceil(+(x - 0.5<em>dx)/dx);<br />
if (x &lt; -0.5*dx) x += dx*(double)ceil(-(x + 0.5</em>dx)/dx);<br />
if (y &gt; +0.5*dy) y -= dy*(double)ceil(+(y - 0.5<em>dy)/dy);<br />
if (y &lt; -0.5*dy) y += dy*(double)ceil(-(y + 0.5</em>dy)/dy);<br />
if (z &gt; +0.5*dz) z -= dz*(double)ceil(+(z - 0.5<em>dz)/dz);<br />
if (z &lt; -0.5*dz) z += dz*(double)ceil(-(z + 0.5</em>dz)/dz);<br />
}<br />
using namespace std;</p>
<p>// Textdatei einlesen und in Matrix speichern</p>
<p>ifstream ifs(&quot;C:\\Simulationsergebnisse.txt&quot;);<br />
if (!ifs) {<br />
cerr &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot; &lt;&lt; endl;<br />
exit(-1);<br />
}</p>
<p>vector&lt;vector&lt;double&gt; &gt; matrix;<br />
while (ifs) {<br />
string line;<br />
getline(ifs, line);<br />
istringstream iss(line);<br />
vector&lt;double&gt; values;<br />
copy(istream_iterator&lt;double&gt;(iss),<br />
istream_iterator&lt;double&gt;(),<br />
back_insert_iterator&lt;vector&lt;double&gt; &gt;(values));<br />
if (values.size() &gt; 0) matrix.push_back(values);<br />
}</p>
<p>r = sqrt(x*x + y*y + z*z);</p>
<p>if (r &lt;= rKugel ){<br />
data[6] = 1;<br />
data[7] = 0;<br />
data[8] = 0;<br />
data[9] = 0;<br />
}<br />
else{<br />
aktMin=1000.;<br />
for (int q = 0; q &lt; matrix.size(); ++q){<br />
if (abs(matrix[q][0] - r)&lt; aktMin){<br />
aktMin = abs(matrix [q] [0] -r);<br />
aktIndex = q;<br />
}<br />
}<br />
index = sqrt(1-(matrix[aktIndex][1]/nKritisch));<br />
data[6] = index;<br />
data[7] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*x*index/r;<br />
data[8] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*y*index/r;<br />
data[9] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))<br />
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*z*index/r;<br />
}<br />
if (index &lt; 0.0)<br />
{<br />
return -1;<br />
}<br />
return 0;<br />
}</p>
<p>int __declspec(dllexport) APIENTRY UserParamNames(char *data)<br />
{</p>
<p>int i;<br />
i = (int) data[0];<br />
strcpy(data,&quot;&quot;);<br />
if (i == 1) strcpy(data,&quot;nKritisch&quot;);<br />
if (i == 2) strcpy(data,&quot;rKugel&quot;);<br />
if (i == 3) strcpy(data,&quot;Array dx&quot;);<br />
if (i == 4) strcpy(data,&quot;Array dy&quot;);<br />
if (i == 5) strcpy(data,&quot;Array dz&quot;);<br />
return 0;<br />
}</p>
<p>der Teil der die Textdatei einließt hat bei einem separaten Test funktioniert und der Rest sollte auch funktionieren. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1879372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879372</guid><dc:creator><![CDATA[Egbert82]]></dc:creator><pubDate>Thu, 08 Apr 2010 13:35:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 13:47:50 GMT]]></title><description><![CDATA[<p>Bitte den C/C++ button vor und nach dem Code betätigen danke.<br />
ich habe nichts geändert</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;math.h&gt;
#include &lt;string.h&gt;
#include &lt;algorithm&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;iterator&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
#include &lt;stdlib.h&gt;

int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data);
int __declspec(dllexport) APIENTRY UserParamNames(char *data);

BOOL WINAPI DllMain (HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}

int __declspec(dllexport) APIENTRY UserGrinDefinition(double *data)
{
long double r, index, rKugel, nKritisch, aktMin, aktIndex, x, y, z, dx, dy, dz;

x = data[1];
y = data[2];
z = data[3];
nKritisch = data[10];
rKugel = data[11];
dx = data[12];
dy= data[13];
dz= data[14];

if (dx &gt; 0 &amp;&amp; dy &gt; 0 &amp;&amp; dz &gt; 0)
{
if (x &gt; +0.5*dx) x -= dx*(double)ceil(+(x - 0.5*dx)/dx);
if (x &lt; -0.5*dx) x += dx*(double)ceil(-(x + 0.5*dx)/dx);
if (y &gt; +0.5*dy) y -= dy*(double)ceil(+(y - 0.5*dy)/dy);
if (y &lt; -0.5*dy) y += dy*(double)ceil(-(y + 0.5*dy)/dy);
if (z &gt; +0.5*dz) z -= dz*(double)ceil(+(z - 0.5*dz)/dz);
if (z &lt; -0.5*dz) z += dz*(double)ceil(-(z + 0.5*dz)/dz);
}
using namespace std;

// Textdatei einlesen und in Matrix speichern

ifstream ifs(&quot;C:\\Simulationsergebnisse.txt&quot;);
if (!ifs) {
cerr &lt;&lt; &quot;Datei kann nicht geöffnet werden&quot; &lt;&lt; endl;
exit(-1);
}

vector&lt;vector&lt;double&gt; &gt; matrix;
while (ifs) {
string line;
getline(ifs, line);
istringstream iss(line);
vector&lt;double&gt; values;
copy(istream_iterator&lt;double&gt;(iss),
istream_iterator&lt;double&gt;(),
back_insert_iterator&lt;vector&lt;double&gt; &gt;(values));
if (values.size() &gt; 0) matrix.push_back(values);
}

r = sqrt(x*x + y*y + z*z);

if (r &lt;= rKugel ){
data[6] = 1;
data[7] = 0;
data[8] = 0;
data[9] = 0;
}
else{
aktMin=1000.;
for (int q = 0; q &lt; matrix.size(); ++q){
if (abs(matrix[q][0] - r)&lt; aktMin){
aktMin = abs(matrix [q] [0] -r);
aktIndex = q;
}
}
index = sqrt(1-(matrix[aktIndex][1]/nKritisch));
data[6] = index;
data[7] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*x*index/r;
data[8] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*y*index/r;
data[9] = (sqrt(1-(matrix[aktIndex+1][1]/nKritisch))-sqrt(1-(matrix[aktIndex][1]/nKritisch)))
/(matrix[aktIndex+1][0]-matrix[aktIndex][0])*z*index/r;
}
if (index &lt; 0.0)
{
return -1;
}
return 0;
}

int __declspec(dllexport) APIENTRY UserParamNames(char *data)
{

int i;
i = (int) data[0];
strcpy(data,&quot;&quot;);
if (i == 1) strcpy(data,&quot;nKritisch&quot;);
if (i == 2) strcpy(data,&quot;rKugel&quot;);
if (i == 3) strcpy(data,&quot;Array dx&quot;);
if (i == 4) strcpy(data,&quot;Array dy&quot;);
if (i == 5) strcpy(data,&quot;Array dz&quot;);
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1879379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879379</guid><dc:creator><![CDATA[Fencer]]></dc:creator><pubDate>Thu, 08 Apr 2010 13:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 13:51:26 GMT]]></title><description><![CDATA[<p>ok danke, das werde ich mir fürs nächste mal merken...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879382</guid><dc:creator><![CDATA[Egbert82]]></dc:creator><pubDate>Thu, 08 Apr 2010 13:51:26 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 13:56:30 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int __declspec(dllexport) APIENTRY UserParamNames(char *data)
{
int i;
i = (int) data[0];
strcpy(data,&quot;&quot;);
if (i == 1) strcpy(data,&quot;nKritisch&quot;);
if (i == 2) strcpy(data,&quot;rKugel&quot;);
if (i == 3) strcpy(data,&quot;Array dx&quot;);
if (i == 4) strcpy(data,&quot;Array dy&quot;);
if (i == 5) strcpy(data,&quot;Array dz&quot;);
return 0;
}
</code></pre>
<p>Was ist das?<br />
1. Ist es zumindest fragwürdig für ein 1 Byte großes Datum einen int zu verwenden. Zum anderen macht es keinen Sinn zu fragen ob i == 1 ist und danach noch mal, ob es nicht doch lieber 2 oder 3 sein möchte.</p>
<p>In solchen Fällen immer else if und hier am besten switch().</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879389</guid><dc:creator><![CDATA[FrEEzE2046]]></dc:creator><pubDate>Thu, 08 Apr 2010 13:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme bei DLL Erzeugung on Thu, 08 Apr 2010 14:01:36 GMT]]></title><description><![CDATA[<p>diesen Teil habe ich 1 zu 1 aus einer Beispiel DLL von dem Programm das ich verwende entnommen. In anderen Fällen hat dieser Teil auch bisher keine Probleme gemacht...... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879395</guid><dc:creator><![CDATA[Egbert82]]></dc:creator><pubDate>Thu, 08 Apr 2010 14:01:36 GMT</pubDate></item></channel></rss>