Я пытаюсь импортировать dll c ++ dll в c #, но система показывает исключение
System.EntryPointNotFoundException: 'Невозможно найти точку входа с именем' 0x00011091 'в DLL' D: \ project \ RunningProcessDll\ Debug \ RunningProcessDll .dll '.'
Это dllmain.cpp file
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
#include "dllmain.h"
UINT PID_GetProcessId() {
TCHAR szProcessName[MAX_PATH];
DWORD aProcesses[1024], cbNeeded, cProcesses;
unsigned int i;
EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded);
cProcesses = cbNeeded / sizeof(DWORD);
for (i = 0; i < cProcesses; i++) {
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION |
PROCESS_VM_READ,
FALSE, aProcesses[i]);
if (NULL != hProcess)
{
HMODULE hMod;
DWORD cbNeeded;
if (EnumProcessModules(hProcess, &hMod, sizeof(hMod),
&cbNeeded))
{
GetModuleBaseName(hProcess, hMod, szProcessName,
sizeof(szProcessName) / sizeof(TCHAR));
}
}
return aProcesses[i];
}
}
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;
}
Это dllmain.h file
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string>
#include <tlhelp32.h>
#include <Psapi.h>
extern "C" __declspec(dllexport) UINT PID_GetProcessId();
Это файл приложения c # wpf
[DllImport(@"D:\\project\\RunningProcessDll\\Debug\\RunningProcessDll.dll",
EntryPoint ="0x00011091", CallingConvention =
CallingConvention.Cdecl)]
public static extern uint PID_GetProcessID();
int a = size();
public MainWindow()
{
InitializeComponent();
for (int i = 0; i <= a; i++)
{
dg.Items.Add(new Process()
{
ID = PID_GetProcessID().ToString(),
});
}
Я просмотрел несколько сайтов, но проблема не решилась.Я даже проверил точку входа функции через оболочку зависимостей, а затем добавил ее в dllImport, но это исключение все еще происходит