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
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
// 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.