Boa tarde, pessoal. Existe alguma maneira de utilizar classes que estão em um assembly de uma DLL? O assembly já está no Assembly References, porém ao tentar definir uma variável com a classe proveniente da DLL, ele gera o erro de que o DataType é inválido. Alguma ideia?
Você tem o fonte desse DLL? Já tentou usar esse DLL no Visual Studio pra ver como instancia a classe? Geralmente primeiro se importa a classe utilizando USING no topo do programa e depois definindo o objeto, tipo: DEF VAR obj AS NEW minhaClasse. //Onde minhaClasse não tem nada haver com o nome do arquivo DLL
Achei um exemplo na net veja se ajuda Código: BLOCK-LEVEL ON ERROR UNDO, THROW. PROCEDURE HelloWorld EXTERNAL "C:\Users\Steee\source\repos\DllHelloWorld\x64\Release\DllHelloWorld.dll" CDECL: DEFINE INPUT PARAMETER hello AS SHORT NO-UNDO. DEFINE OUTPUT PARAMETER rCode AS SHORT NO-UNDO. END. DEFINE VARIABLE hello AS INTEGER NO-UNDO. DEFINE VARIABLE rCode AS INTEGER NO-UNDO. hello = 3. RUN HelloWorld(hello, OUTPUT rCode). MESSAGE STRING(rCode) VIEW-AS ALERT-BOX INFO BUTTONS OK. Código da DLL Código: #include "pch.h" #include <windows.h> #include <string.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; } //--------------------------------------------------------------------------- /* BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved) { return 1; } */ //--------------------------------------------------------------------------- extern "C" __declspec(dllexport) int HelloWorld(int hello) { return hello * 2; }
Precisa definir a pasta do asssembly https://docs.progress.com/pt-BR/bun...reference-117/page/Assemblies-assemblies.html