Łączenie plikow .dll z project exe c++ (VS 2017).

Odpowiedz Nowy wątek
2018-09-30 18:47

Rejestracja: 6 lat temu

Ostatnio: 1 rok temu

0

Witam, znalazłem sposob na połaczenie plikow .dll z exe lecz nie wiem dlaczego to nie działa.
Postępuję według następujących czynności:

  1. Zainstalowałem ilmerge package przez NuGet Package Manager
    PM> Install-Package ILMerge.MSBuild.Tasks

    2.Dodałem nastepujacy kod do pliku projektu .vcxproj

    <UsingTask TaskName="ILMerge.MSBuild.Tasks.ILMerge" AssemblyFile="$(SolutionDir)\packages\ILMerge.MSBuild.Tasks.1.0.0.3\tools\ILMerge.MSBuild.Tasks.dll" />
    <Target Name="AfterBuild">
    <ItemGroup>
      <MergeAsm Include="$(OutputPath)$(TargetFileName)" />
      <MergeAsm Include="$(OutputPath)OpenAL32.dll" />
    </ItemGroup>
    <PropertyGroup>
      <MergedAssembly>$(ProjectDir)$(OutDir)MERGED_ASSEMBLY_NAME.exe</MergedAssembly>
    </PropertyGroup>
    <Message Text="ILMerge @(MergeAsm) -> $(MergedAssembly)" Importance="high" />
    <ILMerge InputAssemblies="@(MergeAsm)" OutputFile="$(MergedAssembly)" TargetKind="SameAsPrimaryAssembly" />
    </Target>

    OpenAL32.dll ktory chce połączyc z exe jest w output path.
    Wyskakuje taki oto błąd na samym końcu:

    Error ILMerge.Merge: Could not load assembly from the location 'C:\Users\Tomek\Desktop\visual17\otclient-master\vc14\../otclient.exe'. Skipping and processing rest of arguments.   

    Czy mój projekt nie jest zgodny z .NET assembly czy coś?

title

Pozostało 580 znaków

hehej
2018-10-02 22:39
hehej
0

A ty w ogóle masz jakieś te .lib do tego dll?

Jeśli nie masz to zrób go;

ostatecznie możesz też ładować 'ręcznie' dowolny dll, a potem funkcje z niego: LoadLibrary -> GetProcAdress, itd.

Pozostało 580 znaków

2018-10-02 23:04
Moderator

Rejestracja: 17 lat temu

Ostatnio: 3 godziny temu

0

Twoja aplikacja (EXE) oraz twoje pliki DLL to .NET-owe assembly, czy natywne biblioteki? ILMerge łączy tylko assembly, jak nazwa wskazuje.

Pozostało 580 znaków

2018-10-03 19:10

Rejestracja: 6 lat temu

Ostatnio: 1 rok temu

0
hehej napisał(a):

A ty w ogóle masz jakieś te .lib do tego dll?

Jeśli nie masz to zrób go;

ostatecznie możesz też ładować 'ręcznie' dowolny dll, a potem funkcje z niego: LoadLibrary -> GetProcAdress, itd.

Posiadam lib do tych dll ale nie bardzo wiem co mam z nimi zrobic.

Masz moze jakis przykład jak ręcznie ładowac te dll?

Ktos napisał(a):

Twoja aplikacja (EXE) oraz twoje pliki DLL to .NET-owe assembly, czy natywne biblioteki? ILMerge łączy tylko assembly, jak nazwa wskazuje.

Pewnie natywne jezeli nie chce połączyc.

edytowany 2x, ostatnio: ruth, 2018-10-03 19:11

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0