建立同SAS互動的開發式VC客戶端

2021-03-31 18:22:46 字數 1773 閱讀 6200

上次寫到如何用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 使...