Flutter에서 DLL 연결이 안돼요

windows 환경에서 Flutter 와 AGENT 연결할 때 dll 를 지원 해 주고 있습니다.

1. 패키지 설치

pubspec.yaml 에 다음과 같이 js 패키지를 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  ffi: ^2.0.1 
  charset_converter: ^2.0.1
  cupertino_icons: ^1.0.6
  intl: ^0.18.0
 
dev_dependencies:
  flutter_test:
    sdk: flutter
  ffi: ^2.0.1 
  charset_converter: ^2.0.1
  flutter_lints: ^3.0.0
  intl: ^0.18.0

추가하고 패키지를 설치합니다.

$ flutter pub get

2. dll 연결선언

import 'dart:convert';
import 'dart:ffi';
import 'dart:io';
import 'package:ffi/ffi.dart'; 
import 'dart:typed_data';
import 'package:charset_converter/charset_converter.dart';

final DynamicLibrary kisPosAgentLibrary = DynamicLibrary.open('Dll_x64.dll');

typedef CInitDll = Int32 Function();
typedef DartInitDll = int Function();
final DartInitDll initDll = kisPosAgentLibrary
    .lookup<NativeFunction<CInitDll>>('InitDll')
    .asFunction<DartInitDll>();

3. main.dart 추가

// InitDll 호출
final initResult = initDll();
print('InitDll result: $initResult');
if (initResult != 0) {
  print('InitDll failed with code: $initResult');
  return;
}

4.사용

// run
flutter run -d windows
Launching lib\main.dart on Windows in debug mode...
Building Windows application...                                     8.6s
✓ Built build\windows\x64\runner\Debug\my_flutter_app.exe
Syncing files to device Windows...                                  54ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

A Dart VM Service on Windows is available at: http://127.0.0.1:53106/JNRgyWRPPeI=/

참고>

Last updated