首先是C的DLL(我的項目叫ConsoleApplication2.dll):
創(chuàng)新互聯(lián)是一家專業(yè)提供古冶企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站設計、做網(wǎng)站、HTML5建站、小程序制作等業(yè)務。10年已為古冶眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設計公司優(yōu)惠進行中。
#include?Windows.h
//?導出Test函數(shù),供外部使用
extern?"C"?__declspec(dllexport)?BSTR?__cdecl?Test(LPSTR?p);
BOOL?WINAPI?DllMain(
HINSTANCE?hinstDLL,
DWORD?fdwReason,
LPVOID?lpReserved)
{
switch?(fdwReason)
{
case?DLL_PROCESS_ATTACH:?break;
case?DLL_THREAD_ATTACH:?break;
case?DLL_THREAD_DETACH:?break;
case?DLL_PROCESS_DETACH:?break;
}
return?TRUE;
}
BSTR?__cdecl?Test(LPSTR?p)
{
p[0]?=?'X';
return?SysAllocString((BSTR)p);
}
然后是VB.Net項目:
Imports?System.Runtime.InteropServices
Imports?System.Text
Module?Module1
REM?生成的是ConsoleApplication2.dll,名字與C里面相同
DllImport("ConsoleApplication2.dll",?CharSet:=CharSet.Auto,?CallingConvention:=CallingConvention.Cdecl)
Public?Function?Test(MarshalAs(UnmanagedType.LPTStr)?ByVal?str?As?StringBuilder)?As?MarshalAs(UnmanagedType.BStr)?String
End?Function
Sub?Main()
Dim?str?As?StringBuilder?=?New?StringBuilder("Hello")
Dim?rstr?As?String?=?Test(str)
Console.WriteLine(rstr)
Console.ReadKey()
End?Sub
End?Module
運行結果:
這個是你的問題,不是vb.net速度慢。
你應該這樣寫:
Dim file1 As FileStream = New FileStream("地址", FileMode.Open)
Dim myread As BinaryReader = New BinaryReader(file1)
Dim fn(file1.Length) As Byte
For i As Integer = 0 To file1.Length - 1
fn(i) = myread.ReadByte
Next
記得前面要 imports system.io
這個代碼把文件讀入一個fn的數(shù)組中,速度極快。
1、語言之間具有互通性(這是一個前提基調);
2、比如在java或者c/c++中,在循環(huán)中進行一個判斷,如果判斷成功或者不成功,那么就可以設置一個關鍵字break來跳出這個循環(huán)哦;
3、這個break的作用的就是當你判斷實現(xiàn)或者未實現(xiàn)這個判斷語句時,你像不需要再進行循環(huán)或者判斷,那么可以用這個break關鍵字來發(fā)揮作用哦。
break退出循環(huán)
for循環(huán)對應 exit for
do/do while循環(huán)對應 exit do