2012-03-06 63 views
-1

我在程序中遇到问题。我在64位Win 7操作系统上使用VB 2008。该程序计算某些窗口进程的散列,然后将它们存储在Access数据库(2003 .mdb类型)中。

现在出现的问题是,要访问我更改为
项目(右键)数据库 - >属性 - >编译 - >高级编译选项 - >目标CPU的x86

但是,当我使用这个设置,当程序尝试访问windows/system32文件夹时,程序抛出一个未找到的文件异常。

所以要访问windows/system32文件夹下,我必须使用的设置为: 项目(右键) - >属性 - >编译 - >高级编译选项 - >目标CPU到x64

,但是,使用此设置我无法访问数据库。 平台visual basic程序中的相关问题..需要帮助

+0

那么你的数据库是在Windows/System32目录下?这是为什么? – 2012-03-06 09:20:55

+0

请参阅http://stackoverflow.com/questions/2147737/changing-a-visual-studio-c-sharp-project-from-x86-to-any-cpu也检查http://stackoverflow.com/questions/3640820/system32-folder-in-windows-7 希望这会对你有所帮助。 – 2012-03-06 09:21:57

+0

没有我的数据库不在Win/system32目录中。哈希函数计算system32目录中某些进程的哈希.. – arya 2012-03-06 09:27:54

回答

2

您需要将数据库文件移动到c:\ windows \ syswow64。

这当然不是一个好主意,这些目录都归Windows所有。在64位操作系统上进行文件系统重定向是一种等待发生的事故。接下来是安全许可问题。改为使用AppData文件夹,Environment.GetFolderPath()来查找它。

+0

我实际上解决了这个问题。而不是在我的程序中指向system32文件夹,我不得不使用sysnative文件夹。现在这两个模块都可以在x86平台上正常工作。 thnx people – arya 2012-03-07 14:05:05

+1

嗯,不完全,XP不知道“sysnative”是什么意思。 – 2012-03-07 14:10:12

+0

我在Windows 7上工作,这个问题永远不会发生与Win XP我认为... – arya 2012-03-08 08:23:56