重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先是C的DLL(我的项目叫ConsoleApplication2.dll):
创新互联是一家专业提供古冶企业网站建设,专注与成都网站设计、做网站、HTML5建站、小程序制作等业务。10年已为古冶众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
#include Windows.h
// 导出Test函数,供外部使用
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的数组中,速度极快。
1、语言之间具有互通性(这是一个前提基调);
2、比如在java或者c/c++中,在循环中进行一个判断,如果判断成功或者不成功,那么就可以设置一个关键字break来跳出这个循环哦;
3、这个break的作用的就是当你判断实现或者未实现这个判断语句时,你像不需要再进行循环或者判断,那么可以用这个break关键字来发挥作用哦。
break退出循环
for循环对应 exit for
do/do while循环对应 exit do