¿Power shell puede leer una dll que creé con C++ nativo?
Publicado por Meta (9 intervenciones) el 20/06/2020 02:11:22
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 C#:
DLL hecho con C++:
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.
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#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 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.
Valora esta pregunta


0