上次寫到如何用vb跟sas互動,不過vb用來開發執行效率較高的系統絕不是理想選擇
下面就介紹一下如何用vc通過***方式跟sas互動
其實也沒有什麼,只有知道vc呼叫***的方式然後在參照我blog的上面文章,不用我說也知道,
所以我這篇文章面對的「客戶」是菜鳥級程式設計師
第一步,當然是把這個***的型別庫匯入,不然vc編譯器不認識你的資料型別,so so..,匯入語法
#import "c:/program files/sas/shared files/integration technologies/sas.tlb"
上面就是你sas型別庫所在的目錄了
第二步,微軟告訴我,要呼叫***必須先初始化***環境,最後當前是清除***環境,所以要寫下下面**
coinitialize(null);
/*n多**在這中間
*/...
couninitialize();
第三步,當然是生成***物件的例項了,生成***物件例項的方法有n種,但下面這種最容易,也最好使
首先,要獲得***物件的clsid
clsid clsid;
clsidfromprogid(olestr("sas的***物件,如sas.workspace"),&clsid);
然後,利用這個clsid,通過智慧型指標就可以生成物件了,如下
c***ptr_sas;
_sas.cocreateinstance(clsid);
ok,物件已經建好了,可以呼叫該物件的方法了,如
_sas->close();
看官,明白了把 ,噢,忘了,要包含標頭檔案#include ,不然也會報錯的
好了,下面給個例子讓你看看吧
下面這個類封裝了sas.workspace的基本功能
#import "c:/program files/sas/shared files/integration technologies/sas.tlb"
using namespace sas;
class csaspoolelse
currrunthreadnum=0;
}void start_sas()
state=true;
}void exec(char * ***mand)
void close()
};然後用下面這段**呼叫就是了
#include "stdafx.h"
#include
#include "csaspool.h"
int main(int argc, char* argv)
over了,這段**呼叫最後的結果會在你的d盤生成乙個1.txt檔案,然後呢這個檔案裡會包含乙個ok的字眼
完是完了,但是有個特別隱秘的bug包含在程式中,就是那個智慧型指標的使用
眾所周知,智慧型指標給我們封裝了乙個完美的指標,以致於我們根本不必關注什麼++ ——的引用關係
但是 我們的智慧型指標_sas生命週期的結束是在
couninitialize()之後,coinitialize所開的環境在couninitialize()後已經被
關閉,而_sas此時發生析構,可能會導致某些問題,so so ,上面呼叫的**稍微改一下,就萬事大吉了
#include "stdafx.h"
#include
#include "csaspool.h"
int main(int argc, char* argv)
couninitialize();
}這次可是真正完了,沒什麼說的了
建立同SAS互動的開發式VC客戶端
上次寫到如何用vb跟sas互動,不過vb用來開發執行效率較高的系統絕不是理想選擇 下面就介紹一下如何用vc通過com方式跟sas互動 其實也沒有什麼,只有知道vc呼叫com的方式然後在參照我blog的上面文章,不用我說也知道,所以我這篇文章面對的 客戶 是菜鳥級程式設計師 第一步,當然是把這個com...
表單的建立和PHP的互動
post請求,如果位址不全 刪除了位址中的某幾個字元 會導致頁面打不開 html html lang en head meta charset utf 8 title title head body from action method 賬號 input type text name account...
HTML5表單的建立以及和php互動
html表單 表單用於獲取不同型別的使用者輸入 常用的表單標籤 表單輸入域 文字域控制標籤 定義域域的標題 選擇列表 選項組下拉列表中的選項 按鈕測試 如下 html htmllang en head metacharset utf 8 title 表單 title head body form 使...