我正在从运行Access 2010的32位Office计算机编译我的Access数据库。我将作为.accdr文件进行部署以用于Access 2010 Runtime。我引用:将32位访问系统部署到64位Office计算机
VBE7.DLL
MSACC.OLB
STDOLE2.TLB
ACEDAO.DLL
EXCEL.EXE
msxml6.dll
我需要部署到一系列平台,包括64位2010年,2013年等。
因为部署的系统将使用Access 2010 Runtime,所以我认为大多数参考都没有问题。但是,Excel会给我一个问题。我曾试着注册Excel引用(实际上是所有引用,以防任何其他版本因机器而异),但似乎我无法从32位系统注册64位版本的Excel。或者我可以吗?
此外,如果我使用的是Runtime 2010,是否还需要更改API调用(使用PtrSafe关键字)?
这里有一些API调用我做的:
Declare Function aht_apiGetOpenFileName Lib "comdlg32.dll"
Alias "GetOpenFileNameA" (OFN As tagOPENFILENAME) As Boolean
Private Declare Function apiGetLocaleInfo Lib "kernel32"
Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Private Declare Function LoadLibraryRegister Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName$) As Long
Public Declare Function SetDllDirectoryA Lib "kernel32" (ByVal lpPathName As String) As Long
Private Declare Function GetProcAddressRegister Lib "kernel32" Alias _
"GetProcAddress" (ByVal hModule&, ByVal lpProcName$) As Long
Private Declare Function CreateThreadForRegister Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As Any, ByVal dwStackSize&, ByVal lpStartAddress&, ByVal lpparameter&, ByVal dwCreationFlags&, ThreadID&) As Long
你有没有听说过有条件的编译? – 2014-09-02 08:44:59
是的,我开始学习所有关于#如果我们说的是Win64,但我仍不清楚是否可以从32位版本的Access注册64位版本的Excel。你能帮我吗? – 2014-09-02 09:52:03