У меня плата ICOP VDX-6354 под управлением Win CE.Я пытаюсь управлять зуммером платы из моей программы на C #.Я перепробовал все playound и т. Д. "Coredll.dll" платформа вызывает.никто из них не работал до сих пор.Поэтому мой последний шанс - создать свою собственную DLL.
unsigned char inp(short addr)
{
unsigned char cValue;
_asm
{
mov dx, addr
in ax, dx
mov cValue, al
}
return cValue;
}
void outp(int addr, unsigned char val)
{
__asm
{
push edx
mov edx, DWORD PTR addr
mov al, BYTE PTR val
out dx, al
pop edx
}
}
bool MyBeep(DWORD dwFreq, DWORD dwDuration)
{
outp(0x43, 0xb6); // Set Buzzer
outp(0x42, (0x1234dc / dwFreq)); // Frequency LSB
outp(0x42, (0x1234dc / dwFreq) >> 8); // Frequency MSB
outp(0x61, inp(0x61) | 0x3); // Start beep
Sleep(dwDuration);
outp(0x61, inp(0x61) & 0xfc); // End beep
return TRUE;
}
Приведенный выше код доступен в таблице данных платы.Я хочу скомпилировать его как DLL, а затем вызвать его в моей программе на C #, например
[DllImport("Buzzer.dll", EntryPoint = "MyBeep")]
public static extern void MyBeep(uint dwFreq, uint dwDuration);
. При компиляции я использовал префикс следующим образом:
extern "C" __declspec(dllexport) bool MyBeep(DWORD dwFreq, DWORD dwDuration)
Так что, надеюсь, я будувозможность контролировать зуммер.Моя проблема в том, что я не смог ее скомпилировать.Я выполнил шаги здесь , но это не помогло мне.
Что мне делать шаг за шагом?
РЕДАКТИРОВАТЬ:
Я думаю, что япостроил DLL.Я попробовал другой способ создания библиотеки DLL , найденной здесь .
Теперь я скопировал библиотеку DLL в папку Debug моего проекта запуска C # (другие библиотеки проекта также находятся в этой папке).Затем я пытаюсь вызвать функцию MyBeep из MyBeep.DLL в моем проекте на C #:
[DllImport("MyBeep.dll", EntryPoint = "MyBeep")]
public static extern bool MyBeep(UInt32 dwFreq, UInt32 dwDuration);
Но это дает следующее исключение.
Не удается найти PInvoke DLL 'MyBeep.dll '.
Я что-то упустил?Пожалуйста, проверьте ссылки, приведенные выше, которые я обманул, чтобы собрать DLL, чтобы понять, что я сделал до сих пор.С уважением.