Я создал DLL на С ++, содержащую функцию, которая возвращает общее количество запущенных процессов
Этот идентификатор dllmain.h файл
#pragma once
#include"stdafx.h"
#include<string>
extern "C" __declspec(dllexport) int size();
Это мой dllmain.cpp file
int size() {
TCHAR szProcessName[MAX_PATH];
DWORD aProcesses[1024], cbNeeded ;
int cProcesses;
unsigned int i;
EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded);
cProcesses = cbNeeded / sizeof(DWORD);
return cProcesses;
}
Это файл c #, в который я экспортирую свою функцию DLL
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
[DllImport("D://source//repos//Dll1//Debug//Dll1.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int size();
public Form1()
{
InitializeComponent();
}
private void click_Click(object sender, EventArgs e)
{
int s = size();
Hllolbl.Text = Convert.ToString("s");
}
private void close_Click(object sender, EventArgs e)
{
Close();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Но когда я запускаю мое приложение на c #, функция печати hello возвращает null.Я провел поиск на нескольких сайтах и применил несколько решений, но не смог решить эту проблему