本機執行正常的ADO程式在別的機器上無法執行的問題

2021-07-05 13:02:38 字數 843 閱讀 3810

csdn論壇上經常看到在本機編譯執行正常的使用了ado的程式放到別的機器上就不能執行了,我原來也碰到過這樣的問題,後來發現是ado引擎版本的問題,安裝了vc的機器一般其資料庫引擎版本都比較高,到低版本的系統就出問題了,解決方法就是把mdac連同你的程式一起安裝到目標機器,但是有沒有更好的解決方法呢?答案是有的,就是改動一下你的源**,一般呼叫ado的程式**裡都會有這樣一句:

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("eof","endoffile")

版本相容性的問題就是出在這裡,因為這是跟import的dll版本相關的,我們只要把這個dll換成低版本的就能解決相容性問題。我沒試過直接從其他機器copy並覆蓋這個dll,我是新裝了一台機器,win2000系統,裝完不公升級,任何補丁都不打,然後裝vc,自定義安裝,不選資料庫引擎,裝完後編譯一下程式,在源**目錄就會生成msado15.tlh和msado15.tli兩個檔案,修改一下源**,把

#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("eof","endoffile")

替換成:

#pragma warning(disable:4146)

#include "msado15.tlh"

#pragma warning(default:4146)

這樣就跟dll的版本無關了,以後寫另外的ado程式,也只要include這個msado15.tlh檔案就行了,不需要import。因此要注意備份msado15.tlh和msado15.tli兩個檔案。

使用docker在本機執行Redis

redis是乙個高速的記憶體資料庫,支援多種資料結構 由於mysql這類資料庫系統,操作一般都比較慢,為了降低訪問mysql的頻率,通常我們會把redis作為乙個資料快取,充分利用其高速的特點,將一些頻繁訪問,但是變化不多的資料,快取在記憶體中,例如,我需要記錄 的訪問人數,由於訪問量很大,這個訪問...

微控制器執行的程式是在ram中的還是在rom中的

下文來說明微控制器與x86cpu的具體途徑 pc機在執行程式的時候先把程式從硬碟中,調入ram中執行,cpu從ram中讀取程式和資料.而微控制器的程式則是固化在flash 中,cpu執行的時候直接從flash 中讀取程式,從ram中讀取資料.造成這種差別的原因 x86架構的cpu是基於馮.諾伊曼體系...

linux 開機執行程式的方法

開機執行程式的方法 1.在 etc rc.d rc.local檔案中加入程式路徑及程式名 或2.在 etc rc.d init.d 中新增可執行程式,然後在 etc rc.d rcn.d 中新增符號鏈結 n表示執行級別 先檢視 etc inittab檔案中當前系統設定的預設級別,再將符號連線新增到對...