我必须集成一个与.NET应用程序中的网络摄像头通信的本机库。所以我用PInvoke调用编写了一个包装器库并将其链接到主程序:
driver.dll(c ++)+ driver.wrapper.dll(.net 3.5)+ Application(.net 3.5)
问题是,这仅在以本地管理员身份登录时才有效(奇怪的是,当以管理员权限运行时它甚至不起作用)。我没有在这里得到任何特定的错误消息,驱动程序库只返回0而不是1。
当本机库直接链接到应用程序时,
driver.dll(c ++)+ Application(c ++)
它可以作为管理员和用户使用。操作系统是Windows 7。 这种行为可能是什么原因,我该如何解决这个问题呢?
编辑:问题是由使用过的库引起的。现在解决了。
答案 0 :(得分:3)
一个解决方案是编辑app.manifest
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
这将始终以管理员身份运行您的应用程序。
答案 1 :(得分:1)
问题是由使用过的库造成的,不再相关。