Экспорт функции dll из C ++ в c # - PullRequest
0 голосов
/ 26 мая 2018

Я создал 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.Я провел поиск на нескольких сайтах и ​​применил несколько решений, но не смог решить эту проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...