VB.NET创建AOT无依懒的winform 独立EXE,动态库如何调用?

public a as long =9977

public function add(a as long,b as long) as long
    add=a+b
end function

VB.NET用AOT编绎成独立EXE,只能生成无函数的dll(默认有个DotNetRuntimeDebugHeader),无法导出自有模块或类中的API EXPORT动态库 (AOT只能生成64位EXE和DLL,可以用VBA X64或VC++调用,使用时复制DLL到SYSTEM32目录。
但是可以用LoadLibrary 加载这个DLL,如果我模块中加一个共享变量再加一个公共函数,是不是可以通过查找内存基址的方式,得一以这个函数的真实地址?
如果这样不行,就只能想个办法把VB.NET的源码转换成C#,再编绎,就怕会产生很多错误转换不成功。

用VS2022创建一个使用VB.NET语言和.NET 8框架的类库DLL项目,可以按照以下步骤操作:
dotnet new classlib VBNetSharedDLL --language VB --framework net8.0
dotnet publish VBNetSharedDLL -r win-x64  -c release /p:NativeLib=Shared  -p:PublishAot=true

aot winform生成独立EXE无.net框架依赖方法:
命仅行运行创建工程,发布:
dotnet new winforms -n MyWinFormsApp
dotnet publish MyWinFormsApp   -p:PublishAot=true -r win-x64 -c Release -p:_SuppressWinFormsTrimError=true




 Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr

相关推荐

  1. c# 如何调用指定文件夹里面动态dll

    2023-12-17 17:30:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-17 17:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-17 17:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-17 17:30:01       82 阅读
  4. Python语言-面向对象

    2023-12-17 17:30:01       91 阅读

热门阅读

  1. 算法基础十五

    2023-12-17 17:30:01       47 阅读
  2. HashMap和Hashtable的区别(绝对经典)

    2023-12-17 17:30:01       60 阅读
  3. MapStruct

    2023-12-17 17:30:01       56 阅读
  4. 2312llvm,读写位码

    2023-12-17 17:30:01       62 阅读
  5. Using Implicit Rules

    2023-12-17 17:30:01       59 阅读
  6. WTN6040F-8S语音芯片:投篮游戏机新时代引领者

    2023-12-17 17:30:01       64 阅读
  7. macos苹果电脑开启tftp server上传fortigate60e固件成功

    2023-12-17 17:30:01       46 阅读