2012-03-06 96 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