内联汇编,SEHException

时间:2012-08-07 06:34:54

标签: c# windows assembly x86

我在cpp中创建了一个.dll文件来访问I / O端口并写入它们。为此,我从我的c#控制台应用程序调用这个.dll但是当我尝试运行它时,我得到“SEHException was未处理的异常。你有什么想法吗?

这是c#:

[DllImport("testlib.dll")]
public static extern void enableWatchDog();

static void Main(string[] args)
{
    enableWatchDog();
}

这是cpp(创建.dll):

extern "C" __declspec(dllexport) void enableWatchDog() { 
   _asm {
      mov al, 41
      out 66, al
      mov al, 4
      out 62, al
   }
}   

1 个答案:

答案 0 :(得分:2)

您无法直接从Windows中的用户模式应用程序访问任意I / O端口。您需要使用特殊的内核模式驱动程序。