<?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[xDRV in VirtualDJ Plugin]]></title><description><![CDATA[<p>hallo<br />
ich bin wenig vertraut mit c++ aber muss diese plugin möglichst schnell fertigstellen. ich habe den parallelport treiber xDRV von <a href="http://www.pcports.ru" rel="nofollow">www.pcports.ru</a> schon erfolgreich in einem sepearten vcpp projekt genutzt und will dies nun in mein vdj plugin einarbeiten. dabei stoße ich aber auch für mich nicht lösbare probleme.</p>
<p>die wichtigen ausschnitte des codes:<br />
class C3 : public IVdjDsp2<br />
{<br />
public:<br />
HRESULT __stdcall OnLoad(TPluginInfos *PluginInfos);<br />
HRESULT __stdcall OnStart(int pos);<br />
HRESULT __stdcall OnStop(int pos);</p>
<p>HRESULT __stdcall OnProvidedInterfaceInit(TProvidedInterfaceInit <em>Init);<br />
HRESULT __stdcall OnButton(int button,bool down);<br />
HRESULT __stdcall OnSlider(int slider,int value);<br />
private:<br />
<em><em>void MyInterrupt(void</em> param);</em></em><br />
int stamp;<br />
int r1[24],r2[24];<br />
};</p>
<p>HRESULT __stdcall C3::OnLoad(TPluginInfos *PluginInfos)<br />
{<br />
PluginInfos-&gt;PluginVersion=VDJDSP_VERSION;<br />
PluginInfos-&gt;Processing=PROCESSING_NONE;<br />
PluginInfos-&gt;Interface=INTERFACE_PROVIDED;<br />
// Give some infos about you and your plugin<br />
PluginInfos-&gt;Name=&quot;3&quot;;<br />
PluginInfos-&gt;Author=&quot;_put your name here_&quot;;<br />
// Replace the files &quot;BITMAP.BMP&quot; and &quot;SELECTED.BMP&quot; in your directory with your owns.<br />
PluginInfos-&gt;Bitmap=LoadBitmap(hInstance,MAKEINTRESOURCE(100));<br />
PluginInfos-&gt;SelectedBitmap=LoadBitmap(hInstance,MAKEINTRESOURCE(101));<br />
// Make any extra initialisation here<br />
bool res = xDRV_OpenDriver();<br />
if(res)<br />
{<br />
<strong>xDRV_InitInterput(MyInterrupt, nullptr);</strong><br />
xDRV_Write(0x378, 0x00);<br />
// full Clock<br />
xDRV_Write(0x378+2, 0x1A);<br />
xDRV_Write(0x378+2, 0x1B);<br />
// load<br />
xDRV_Write(0x378+2, 0x19);<br />
xDRV_Write(0x378+2, 0x1B);<br />
}<br />
else<br />
{<br />
//error<br />
}<br />
return S_OK;<br />
}</p>
<p><em><em>void MyInterrupt(void</em> param)</em>*<br />
{<br />
HRESULT hr;<br />
float beatpos;<br />
hr=GetParam(1,&quot;BeatPos&quot;,&amp;beatpos);<br />
//if(FAILED(hr)) return S_FALSE;<br />
int fbp=(int)floor(beatpos);<br />
if(fbp!=stamp)<br />
{<br />
xDRV_Write(0x378, 0xFF);<br />
stamp=fbp;<br />
}<br />
else<br />
{<br />
xDRV_Write(0x378, 0x00);<br />
}<br />
xDRV_Write(0x378+2, 0x1A);<br />
xDRV_Write(0x378+2, 0x1B);<br />
// load<br />
xDRV_Write(0x378+2, 0x19);<br />
xDRV_Write(0x378+2, 0x1B);<br />
//return S_OK;<br />
}</p>
<p>(bekomme den obenstehenden code ausschnitt nicht in die c++ darstellung. konnte nicht feststellen warum)</p>
<p>führen zum fehler:</p>
<pre><code class="language-cpp">error C3867: 'C3::MyInterrupt': function call missing argument list; use '&amp;C3::MyInterrupt' to create a pointer to member
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">xDRV_InitInterput(&amp;C3::MyInterrupt, nullptr);
</code></pre>
<p>bekomme ich</p>
<pre><code class="language-cpp">error C2664: 'xDRV_InitInterput' : cannot convert parameter 1 from 'void (__thiscall C3::* )(void *)' to 'void (__cdecl *)(void *)'
</code></pre>
<p>habe vieles ausprobiert was ich in versch suchergebnissen gefunden habe aber wie gesagt übersteigt dies meine fähigkeiten.</p>
<p>bitte um hilfe</p>
<p>anbei hoffentlich alle wichtigen daten.</p>
<p><a href="http://doofy.speciesm.net/xdrvprob/" rel="nofollow">doofy.speciesm.net/xdrvprob/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200854/xdrv-in-virtualdj-plugin</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 20:28:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200854.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Dec 2007 13:49:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to xDRV in VirtualDJ Plugin on Thu, 20 Dec 2007 13:49:44 GMT]]></title><description><![CDATA[<p>hallo<br />
ich bin wenig vertraut mit c++ aber muss diese plugin möglichst schnell fertigstellen. ich habe den parallelport treiber xDRV von <a href="http://www.pcports.ru" rel="nofollow">www.pcports.ru</a> schon erfolgreich in einem sepearten vcpp projekt genutzt und will dies nun in mein vdj plugin einarbeiten. dabei stoße ich aber auch für mich nicht lösbare probleme.</p>
<p>die wichtigen ausschnitte des codes:<br />
class C3 : public IVdjDsp2<br />
{<br />
public:<br />
HRESULT __stdcall OnLoad(TPluginInfos *PluginInfos);<br />
HRESULT __stdcall OnStart(int pos);<br />
HRESULT __stdcall OnStop(int pos);</p>
<p>HRESULT __stdcall OnProvidedInterfaceInit(TProvidedInterfaceInit <em>Init);<br />
HRESULT __stdcall OnButton(int button,bool down);<br />
HRESULT __stdcall OnSlider(int slider,int value);<br />
private:<br />
<em><em>void MyInterrupt(void</em> param);</em></em><br />
int stamp;<br />
int r1[24],r2[24];<br />
};</p>
<p>HRESULT __stdcall C3::OnLoad(TPluginInfos *PluginInfos)<br />
{<br />
PluginInfos-&gt;PluginVersion=VDJDSP_VERSION;<br />
PluginInfos-&gt;Processing=PROCESSING_NONE;<br />
PluginInfos-&gt;Interface=INTERFACE_PROVIDED;<br />
// Give some infos about you and your plugin<br />
PluginInfos-&gt;Name=&quot;3&quot;;<br />
PluginInfos-&gt;Author=&quot;_put your name here_&quot;;<br />
// Replace the files &quot;BITMAP.BMP&quot; and &quot;SELECTED.BMP&quot; in your directory with your owns.<br />
PluginInfos-&gt;Bitmap=LoadBitmap(hInstance,MAKEINTRESOURCE(100));<br />
PluginInfos-&gt;SelectedBitmap=LoadBitmap(hInstance,MAKEINTRESOURCE(101));<br />
// Make any extra initialisation here<br />
bool res = xDRV_OpenDriver();<br />
if(res)<br />
{<br />
<strong>xDRV_InitInterput(MyInterrupt, nullptr);</strong><br />
xDRV_Write(0x378, 0x00);<br />
// full Clock<br />
xDRV_Write(0x378+2, 0x1A);<br />
xDRV_Write(0x378+2, 0x1B);<br />
// load<br />
xDRV_Write(0x378+2, 0x19);<br />
xDRV_Write(0x378+2, 0x1B);<br />
}<br />
else<br />
{<br />
//error<br />
}<br />
return S_OK;<br />
}</p>
<p><em><em>void MyInterrupt(void</em> param)</em>*<br />
{<br />
HRESULT hr;<br />
float beatpos;<br />
hr=GetParam(1,&quot;BeatPos&quot;,&amp;beatpos);<br />
//if(FAILED(hr)) return S_FALSE;<br />
int fbp=(int)floor(beatpos);<br />
if(fbp!=stamp)<br />
{<br />
xDRV_Write(0x378, 0xFF);<br />
stamp=fbp;<br />
}<br />
else<br />
{<br />
xDRV_Write(0x378, 0x00);<br />
}<br />
xDRV_Write(0x378+2, 0x1A);<br />
xDRV_Write(0x378+2, 0x1B);<br />
// load<br />
xDRV_Write(0x378+2, 0x19);<br />
xDRV_Write(0x378+2, 0x1B);<br />
//return S_OK;<br />
}</p>
<p>(bekomme den obenstehenden code ausschnitt nicht in die c++ darstellung. konnte nicht feststellen warum)</p>
<p>führen zum fehler:</p>
<pre><code class="language-cpp">error C3867: 'C3::MyInterrupt': function call missing argument list; use '&amp;C3::MyInterrupt' to create a pointer to member
</code></pre>
<p>mit</p>
<pre><code class="language-cpp">xDRV_InitInterput(&amp;C3::MyInterrupt, nullptr);
</code></pre>
<p>bekomme ich</p>
<pre><code class="language-cpp">error C2664: 'xDRV_InitInterput' : cannot convert parameter 1 from 'void (__thiscall C3::* )(void *)' to 'void (__cdecl *)(void *)'
</code></pre>
<p>habe vieles ausprobiert was ich in versch suchergebnissen gefunden habe aber wie gesagt übersteigt dies meine fähigkeiten.</p>
<p>bitte um hilfe</p>
<p>anbei hoffentlich alle wichtigen daten.</p>
<p><a href="http://doofy.speciesm.net/xdrvprob/" rel="nofollow">doofy.speciesm.net/xdrvprob/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423828</guid><dc:creator><![CDATA[GastMichi]]></dc:creator><pubDate>Thu, 20 Dec 2007 13:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to xDRV in VirtualDJ Plugin on Wed, 26 Dec 2007 18:52:58 GMT]]></title><description><![CDATA[<p>Die MyInterrupt muss statisch sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1426416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1426416</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Wed, 26 Dec 2007 18:52:58 GMT</pubDate></item></channel></rss>