¿CMD, PowerShell, Python es capaz de leer un archivo.dll de C++ nativo?

Iniciado por Meta, 20 Junio 2020, 02:41 AM

0 Miembros y 1 Visitante están viendo este tema.

Meta

Buenos días compañeros.

No tengo idea de PowerShell. He creado una dll con Visual C++ nativo y a 64 bits. Hice un ejemplo con una interfaz de consola C# y me lee la dll de C++ nativo.

Dejo un ejemplo.

Código (csharp) [Seleccionar]
Código C#:

using System;
using System.Runtime.InteropServices; // No olvidar.

namespace Consola_cs
{
    class Program
    {
        // Importar dll.
        [DllImport("MyDLL.dll")]
        extern static public int Suma(int a, int b);
        [DllImport("MyDLL.dll")]
        extern static public IntPtr Mensaje();

        static void Main()
        {
            // Título de la ventana.
            Console.Title = "Consola C# 2019";

            // Tamaño de la ventana.
            Console.SetWindowSize(40, 5);

            // Color de las letras.
            Console.ForegroundColor = ConsoleColor.Green;

            // Llamando a la dll para mostrar un mensaje y una suma.
            Console.WriteLine(Marshal.PtrToStringAuto(Mensaje()));
            Console.WriteLine(Suma(1764, -764).ToString());

            // Pulse cualquier tecla para salir.
            Console.ReadKey();
        }
    }
}


DLL hecho con C++:

Código (cpp) [Seleccionar]
// dllmain.cpp : Define el punto de entrada de la aplicación 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;
}

extern "C"
{
    __declspec(dllexport)  int WINAPI Suma(int, int);
    __declspec(dllexport) LPTSTR WINAPI Mensaje();
};

// Suma.
int WINAPI Suma(int a, int b) { return a + b; }

// Mensaje.
LPTSTR WINAPI Mensaje() { return LPTSTR(L"Hola. Soy una dll de C++ nativo."); }



El archivo dll que he creado se llama MyDLL.dll y quiero saber si PowerShell es capaz de leer las dll y que funciona. Esta dll solo hace una suma y muestra un mensaje en pantalla.

¿Es posible que PowerShell sea capaz de leer una dll?

Si es cierto. ¿Cómo se hace?

Un cordial saludos.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/