Greifen Sie auf die .A-Datei der statischen Bibliothek in der .Net MAUI-Klassenbibliothek zu und erstellen Sie. Nach demC#

Ein Treffpunkt für C#-Programmierer
Guest
 Greifen Sie auf die .A-Datei der statischen Bibliothek in der .Net MAUI-Klassenbibliothek zu und erstellen Sie. Nach dem

Post by Guest »

Wie verknüpfe ich eine statische Bibliothek mit der .Net MAUI-Klassenbibliothek und wie verwende ich diese DLL in einem Beispielprojekt?
  • Erstellen einer .NetMaui-Klassenbibliothek. Dabei füge ich eine statische Dateibibliothek hinzu, die aus C++ erstellt wurde.
    Beispiel:
    AddByCase
  • Wrapper.cs-Klasse in der Klassenbibliothek erstellt und auf diese APIs zugegriffen

    Beispiel:
    const string DllName = "__Internal";

    [DllImport(DllName, EntryPoint = "AddByCase", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)] //Entry Point name has to be same name as in .a File
    internal static extern long AddByCase(int SequenceNumber, double Quantity, StringBuilder ItemUPC, StringBuilder CaseUPC, double Price, int Pack, int InnerPack, StringBuilder ErrorMessage);
  • Verknüpfen der .a-Datei im Klassenbibliotheksprojekt mit dem folgenden

    Pfad:
    Platforms\\iOS\\Lib\\. // This is the path where i have .a file inside the project

    Der folgende Code befindet sich in .CSProj





    Static
    True
  • Projekt erstellen und DLL erfolgreich erstellen. Während ich diese DLL-Datei im Hauptprojekt verwende, erhalte ich so viele Fehler wie die folgenden. Was fehlt?

    like/usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/ targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: clang++ mit Code 1 beendet: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]


    /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler: Undefiniert Symbole für Architektur x86_64: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]


    /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler:   " _Abort“, referenziert von: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]


    /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler:      [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]


    /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler:   " _AddByCase“, referenziert von: [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]


    /usr/local/share/dotnet/packs/Microsoft.iOS.Sdk.net8.0_18.0/18.0.8316/targets/Xamarin.Shared.Sdk.targets(1648,3): Fehler:      [/Users/sadeesh.kumar/Documents/Project/MauiApp4/MauiApp4/MauiApp4.csproj::TargetFramework=net8.0-ios]
Umgebung:
  • Visual Studio-Code: Version: 1.96.2
  • MacOS: 14.7.1
  • XCode: 16.2
  • DotNet-SDK: 8.0. 404
.dill verlinkt wie unten auf das Hauptprojekt. Lib-File ist der Ordnername, in dem ich .dll-Dateien habe
Lib-File\CSharpLib.dll

AddByCase API ist in der .a-Datei vorhanden, die ich mit nm -C file überprüft habe.a
Gibt es ein Verknüpfungsproblem? Klassenbibliotheksprojekt?
Ich habe versucht, so zu verlinken
Versuchen Sie 1:


Static
True



Versuchen Sie 2:




Im Hauptprojekt verwende ich die DLL, die aus einer Klassenbibliothek wie dieser stammt
Lib-File\CSharpLib.dll

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post