不才的我也寫出DLL來了!
一直看nes大的DdePushExcel又看到MC那邊提到的outputfile
無疑的,EXCEL絕對是一個超好用的工具
如果像nes大說的不用outputfile而可以push to EXCEL
那麼EXCEL要後續生出檔案或是做任何其他事情,可想而知
使用VBA要比PowerLanguage強太多了
研究了好幾天,終於可以上來臭屁一下,看看能不能也撈點論壇金錢
DLL有分x86和x64兩個版,是任何開發工具都可以順利調用的API
x86平台的就用 RunDdePushExcel_x32.dll
x64平台的就用 RunDdePushExcel_x64.dll
API只有一個
用C++看的話像這樣
- bool RunDdePushExcel(char *ExeName, char *SheetName, char *DataString);
複製代碼
用C#看的話像這樣
- bool RunDdePushExcel(string ExeName, string SheetName, string DataString);
複製代碼
舊的MC不能用string可以改lpstr來使用就可以了
ExeName 就是 nes大的 DdePushExcel.exe 如果放在特殊位置可以連帶資料夾位置完整指定
SheetName 則是DdePushExcel使用2個參數方式的第一個參數,代表要把資料送到EXCEL哪個工作表
DataString 則是DdePushExcel使用2個參數方式的第二個參數,代表要更新哪些儲存格內容
(請自行參考nes大提供的影片瞭解更詳細)
因為現在C#最常看到,所以就用C#來示範使用DLL
C# Test程式碼
很簡單的測試每50ms一直把時間字串打到EXCEL上更新
(EXCEL要先有程式預定要更新的工作表 Sheet1 )
雖然示範的時間每秒才有更新,不過故意用50ms比較頻繁的呼叫來觀察效能如何
此測試程式也弄成有x86和x64兩種平台
x86執行檔Test程式,透過x86的DLL呼叫執行x86的exe程式
x86 Test執行畫面
x64執行檔Test程式,透過x64的DLL呼叫執行x86的exe程式
x64 Test執行畫面
跑DdePushExcel跳出來的console視窗有設計把它給隱藏了
感覺DLL蠻成功的耶!
雖然說x86和x64的DLL是任何開發工具都能使用
不過C#的Test程式則是VS2010上寫的要有.NET4的環境下才能跑
裡面DdePushExcel.exe就是nes大所提供實用的DDE小工具
為了作業環境能一致,x86和x64都各放一個,其實是一樣的
也再次實證x32的執行檔能在x86和x64平台的程式上都能正確呼叫
畢竟像MC這類軟體就算指標再多,公式再多,線圖再多,想要用的總是不足
還不如把MC的一些訊號提供出來給其他系統參考應用還比較有用吧!
MC太弱,一套MC不夠就多跑幾套
最後訊息集中到EXCEL上統籌成為神助攻!!
終於踏出了第一步
API(x86,x64)和Test程式執行檔:
RunDdePushExcel.zip
(302.82 KB, 下載次數: 26, 售價: 200 金錢)
C#的Test專案程式碼其實已經在圖中了
短短沒有幾行,上次的經驗根本沒有人會想下載
所以金錢設多寡應該沒什麼太大意義,我就設個1000當備份吧!
C#的Test專案程式碼:
WindowsFormsTest1.zip
(62.67 KB, 下載次數: 10, 售價: 1000 金錢)
如果對程式中的 #if x64 有興趣的話,
下載回去看就能懂了
|