Создание Entry-Point для динамической dll
Моя задача - сделать запуск программы при инжекте моей dll в сторонний процесс. ЯП - C#.
С самого начала я думал об том, чтобы просто сделать в C# dll метод Main, но увы в C# нельзя сделать( Так мне все говорят ) так же, как в C++. Тогда я решил добавить в моё решение C++ проект "Динамическая библиотека C++" и уже через Entry-Point C++ dll вызывать Main моей C# библиотеки.
В итоге, сразу после создания библиотеки на меня посыпались ошибки, я спросил всех C++ друзей - говорят что ситуация очень странная и они не знают решения.
Код C# dll:
//Program.cs
namespace PissPissInAJar;
using static FuckSharp;
public class Program
{
[STAThread]
static void Main(string[] args) => new F(@"C:\\t.txt").AL = "Entry point!"; //Запись в файл текста, проверял в ConsoleApp - работает. Так же Main без args.
}
Код C++(Сгенерирован автоматически)
// dllmain.cpp : Определяет точку входа для приложения DLL.
#include "pch.h"
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
// pch.cpp: файл исходного кода, соответствующий предварительно скомпилированному заголовочному файлу
#include "pch.h"
// При использовании предварительно скомпилированных заголовочных файлов необходим следующий файл исходного кода для выполнения сборки.
#pragma once
#define WIN32_LEAN_AND_MEAN // Исключите редко используемые компоненты из заголовков Windows
// Файлы заголовков Windows
#include <windows.h>
В dllmain.cpp файле выдаёт ошибку - "требуется точка с запятой"
А вторая ошибка в файле framework.h - "не удалось открыть источник файл "windows.h""

Ответы (1 шт):
Я нашёл пару костыльных библиотек (Одна из таких - DLLExport) Но они все работают лишь в Console App, при переносе их в Dynamic DLL они переставали работать.
Сам же фикс ошибок в VS решился установкой пакета C++ для windows (как на скрине)
