VB代碼,需要改成VC代碼DLL供VB呼叫,去掉中間簡單的剩下的關鍵代碼, 介面不能改動。
'列印函式 二進制列印到流檔案
Public Sub WriteEntry1(ByRef BW As BinaryWriter, ByVal StartSample As UInt32, ByVal EndSample As UInt32, ByRef TextString As String)
BW.Write(StartSample)
BW.Write(EndSample)
Dim tStrLen As UInt32 '長度包括字串末尾的0
tStrLen = CUInt(TextString.Length + 1)
BW.Write(tStrLen)
For x As Integer = 0 To CInt(tStrLen - 2)
BW.Write(CByte(Asc(TextString.Chars(x))))
Next
BW.Write(CByte(0))
End Sub
'創建流檔案和列印
Public Sub DecodeCustom1(ByVal OutFilename As String, ByVal NumberOfSamples As Integer, ByVal RateIndex As Byte, ByVal Parameters As String)
'流檔案
Dim FS As New FileStream(OutFilename, FileMode.Append, FileAccess.Write)
Dim BW As New BinaryWriter(FS)
Dim va As ULong’測驗
Dim str As String
va = 100
str = "hello"
WriteEntry(BW, 3000, 3500, CStr(va))
WriteEntry(BW, 7000, 7500, str)
End Sub
uj5u.com熱心網友回復:
不要做A語言代碼修改為B語言代碼的無用功。也不要做用A語言代碼直接呼叫B語言代碼庫這樣復雜、這樣容易出錯的傻事。
只需讓A、B語言代碼的輸入輸出重定向到文本檔案,或修改A、B語言代碼讓其通過文本檔案輸入輸出。
即可很方便地讓A、B兩種語言之間協調作業。
比如:
A將請求資料寫到檔案a.txt,寫完后改名為aa.txt
B發現aa.txt存在時,讀取其內容,呼叫相應功能,將結果寫到檔案b.txt,寫完后洗掉aa.txt,改名為bb.txt
A發現bb.txt存在時,讀取其內容,讀完后洗掉bb.txt
以上A可以替換為任何一種開發語言或開發環境,B可以替換為任何一種與A不同的開發語言或開發環境。
除非A或B不支持判斷檔案是否存在、檔案讀寫和檔案更名。
但是誰又能舉出不支持判斷檔案是否存在、檔案讀寫和檔案更名的開發語言或開發環境呢?
可以將臨時檔案放在RamDisk上提高效率減少磨損磁盤。
資料的結構很復雜的話,文本檔案的格式問題可參考json或xml
共享臨時文本檔案這種行程之間的通訊方法相比其它方法的優點有很多,下面僅列出我現在能想到的:
·行程之間松耦合
·行程可在同一臺機器上,也可跨機,跨作業系統,跨硬體平臺,甚至跨國。
·方便除錯和監視,只需讓第三方或人工查看該臨時文本檔案即可。
·方便在線開關服務,只需洗掉或創建該臨時文本檔案即可。
·方便實作分布式和負載均衡。
·方便佇列化提供服務,而且幾乎不可能發生佇列滿的情況(除非硬碟空間滿)
·……
“跨語言、跨機,跨作業系統,跨硬體平臺,跨國,跨*.*的”苦海無邊,
回頭是“使用共享純文本檔案進行資訊交流”的岸!
uj5u.com熱心網友回復:
323232324343uj5u.com熱心網友回復:
一年多了還沒寫出來呢?
uj5u.com熱心網友回復:
從B語言“翻譯”成C語言,應該是很容易的吧……
C/C++ 操作“設備”,這些代碼應該很好寫的……
不過,既然本來就是VB的代碼,干嗎又要用C搞成DLL、再給VB用?
感覺就有點“多此一舉”啊!
uj5u.com熱心網友回復:
原來是 VB.NET的……
那就用C#做DLL吧,這應該就“更容易翻譯”了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/48533.html
標籤:VB基礎類
上一篇:VBA讀取XPS檔案
