2012-04-11 87 views
0

我有一個應用程序寫入在VFP 7,介於所述應用我調用在DLL的函數使用以下:註冊一個DLL,在可視FoxPro 7,窗口7

declare long FunctionName in DLL_NAME.dll [email protected], [email protected] 
. 
. 
. 
RETURN FunctionName(StringParam1, StringParam2) 

調用此函數產生錯誤:

The following error has occurred: 
Message: Cannot load 32-bit DLL d:\folder\DLL_NAME.dll. 

我試圖註冊的DLL使用32/64位regsvr ...沒有運氣!

可幫助識別問題的信息: dll文件不是本地文件,它位於網絡映射驅動器的文件夾中。

非常感謝您的幫助。

+0

謝謝您的回答,這是在Win 7 32位 – user1327073 2012-04-11 18:23:06

+0

的Visual FoxPro 7不支持64位操作系統上運行。 「消息:無法加載32位DLL d:\ folder \ DLL_NAME.dll。」告訴我您正在嘗試在編譯爲x64進程的程序中加載32位DLL。更多... 32位操作系統沒有regsvr進程的64位版本。我建議使用Visual FoxPro 9 SP2來查看你是否有更好的結果。 VP7於10年前發佈。 – 2012-04-11 18:23:19

+0

此外,它聽起來像用戶帳戶沒有要求的特權需要讀取網絡。嘗試使文件本地... – 2012-04-11 18:25:50

回答

0

除了VFP不支持任何64位,我會看看你試圖通過網絡加載DLL的事實。

消除,作爲一個可能的問題,並在本地複製,並從加載...

儘量消除一切,包括你的VFP應用程序。我會直接從VFP命令窗口開始,除了有一個簡單的.prg文件外什麼也不做。在其中,除了聲明和參考dll文件的本地副本。設置參數的值,然後調用該函數。

如果這不起作用,那麼它在被調用的應用程序中的WHERE並不重要......您剛剛取消了整套條件和環境。

它幾乎像我向客戶提供的支持,有時試圖在我們的應用程序中請求來自互聯網的數據。我讓他們手動到他們的瀏覽器並放入我們的應用程序試圖去的任何URL。如果他們無法通過瀏覽器訪問它,那麼他們的防火牆,IP阻止或其他內容......它與我們的應用無關。您可能會遇到類似的情況。排除所有其他因素,只讓少數人能夠絕對測試孤立的問題。

+0

感謝您的解釋,我會按照這些步驟,希望它是網絡問題,而不是64位不兼容! – user1327073 2012-04-11 23:21:39

0

我同意問題很可能是dll位於共享網絡上。過去我通過將文件複製到本地計算機來解決此問題。如果你添加一個特殊的配置文件來告訴它,你可以使用這個來允許一個FoxPro應用程序(或者任何.exe)從聯網驅動器使用dll。網絡框架,它可以訪問某個應用程序的網絡dll。

這裏是鏈接:http://www.west-wind.com/webconnection/docs/index.htm?page=_36e0qlogr.htm

+0

感謝您的鏈接。僅供參考,該應用程序運行在XP客戶端上,並從同一地點遠程加載dll。我認爲這是Windows 7的兼容性問題(dll與64位不兼容?)。一旦這個神祕的問題解決了,我仍然在尋找,並會發布答案。 – user1327073 2012-04-16 13:59:17