====================================================================================================
【C言語 C++】
====================================================================================================
#include <windows.h>
int main() {
//▼ここから
HINSTANCE hDll;
int (*CipherNumber)();
int (*Confirmation)(const char*, const char*);
if (((hDll = LoadLibrary("PGSHIELD.dll"))) == NULL)
{ //LOAD DLL
exit(1);
}
CipherNumber = (int (*)())GetProcAddress(hDll,
"CipherNumber");
Confirmation = (int (*)(const char*, const
char*))GetProcAddress(hDll, "Confirmation");
const char *key = "企業識別番号が自動設定されます"; //COMPANY CODE
if (CipherNumber() != Confirmation("製品名が自動設定されます", key))
{ //LICENSE ACTIVATION
FreeLibrary(hDll);
exit(1);
}
FreeLibrary(hDll);
//▲ここまで
//▽ここから通常の処理を記述▽
return (0);
}
====================================================================================================
【Visual Basic】
====================================================================================================
Imports System.Runtime.InteropServices
Module Module1
' ▼ここから
<DllImport("PGSHIELD.dll",
CallingConvention:=CallingConvention.Cdecl)>
Private Function CipherNumber() As Integer
End Function
<DllImport("PGSHIELD.dll",
CallingConvention:=CallingConvention.Cdecl)>
Private Function Confirmation(ByVal data As String,
ByVal key As String) As Integer
End Function
' ▲ここまで
Sub Main()
' ▼ここから
Dim key As String = "企業識別番号が自動設定されます" ' COMPANY CODE
If CipherNumber() <> Confirmation("製品名が自動設定されます", key)
Then ' LICENSE ACTIVATION
End
End If
' ▲ここまで
' ▽ここから通常の処理を記述▽
End Sub
End Module
====================================================================================================
【Java】
====================================================================================================
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
public class Main {
// ▼ここから
public interface PGShield extends Library {
PGShield INSTANCE = (PGShield)
Native.load("PGSHIELD", PGShield.class);
int CipherNumber();
int Confirmation(String data, String key);
}
// ▲ここまで
public static void main(String[] args) {
// ▼ここから
PGShield pgShield = PGShield.INSTANCE;
String key = "企業識別番号が自動設定されます"; // COMPANY CODE
if (pgShield.CipherNumber() !=
pgShield.Confirmation("製品名が自動設定されます", key)) { // LICENSE ACTIVATION
System.exit(1);
}
// ▲ここまで
// ▽ここから通常の処理を記述▽
}
}
====================================================================================================
【Delphi】
====================================================================================================
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
// ▼ここから
type
TCipherNumber = function: Integer; stdcall;
TConfirmation = function(data, key: PAnsiChar):
Integer; stdcall;
var
hDll: HMODULE;
CipherNumber: TCipherNumber;
Confirmation: TConfirmation;
key: AnsiString;
// ▲ここまで
begin
// ▼ここから
hDll := LoadLibrary('PGSHIELD.dll');
if hDll = 0 then
Exit;
@CipherNumber := GetProcAddress(hDll,
'CipherNumber');
@Confirmation := GetProcAddress(hDll,
'Confirmation');
if not Assigned(CipherNumber) or not
Assigned(Confirmation) then
begin
FreeLibrary(hDll);
Exit;
end;
key := '企業識別番号が自動設定されます'; // COMPANY CODE
if CipherNumber() <> Confirmation('製品名が自動設定されます',
PAnsiChar(key)) then
begin
FreeLibrary(hDll);
Exit;
end;
FreeLibrary(hDll);
// ▲ここまで
// ▽ここから通常の処理を記述▽
end.
====================================================================================================
【C#】
====================================================================================================
using System;
using System.Runtime.InteropServices;
class Program
{
// ▼ここから
[DllImport("PGSHIELD.dll", CallingConvention =
CallingConvention.Cdecl)]
private static extern int CipherNumber();
[DllImport("PGSHIELD.dll", CallingConvention =
CallingConvention.Cdecl)]
private static extern int Confirmation(string data,
string key);
// ▲ここまで
static void Main()
{
// ▼ここから
string key = "企業識別番号が自動設定されます"; // COMPANY CODE
if (CipherNumber() != Confirmation("製品名が自動設定されます",
key))
{
Environment.Exit(1);
}
// ▲ここまで
// ▽ここから通常の処理を記述▽
}
}
====================================================================================================
【Python】
====================================================================================================
import ctypes
# ▼ここから
hDll = ctypes.CDLL("PGSHIELD.dll")
CipherNumber = hDll.CipherNumber
CipherNumber.restype = ctypes.c_int
Confirmation = hDll.Confirmation
Confirmation.argtypes = [ctypes.c_char_p,
ctypes.c_char_p]
Confirmation.restype = ctypes.c_int
key = b"企業識別番号が自動設定されます"
if CipherNumber() != Confirmation(b"製品名が自動設定されます", key):
exit(1)
ctypes.windll.kernel32.FreeLibrary(ctypes.cast(hDll._handle,
ctypes.POINTER(ctypes.c_void_p)))
# ▲ここまで
# ▽ここから通常の処理を記述▽
====================================================================================================
【Go】
====================================================================================================
package main
import "C"
import (
"fmt"
"unsafe"
)
func main() {
// ▼ここから
hDll := C.LoadLibrary(C.CString("PGSHIELD.dll"))
if hDll == nil {
return
}
CipherNumber := C.GetProcAddress(hDll,
C.CString("CipherNumber"))
Confirmation := C.GetProcAddress(hDll,
C.CString("Confirmation"))
key := "企業識別番号が自動設定されます" // COMPANY CODE
cipherNumFunc := *(*func()
int)(unsafe.Pointer(&CipherNumber))
confirmFunc := *(*func(*C.char, *C.char)
int)(unsafe.Pointer(&Confirmation))
if cipherNumFunc() !=
confirmFunc(C.CString("製品名が自動設定されます"), C.CString(key)) {
C.FreeLibrary(hDll)
return
}
C.FreeLibrary(hDll)
// ▲ここまで
// ▽ここから通常の処理を記述▽
}
====================================================================================================
【その他】
目的の言語がない場合は、ChatGPTやCopilot以下のように質問して目的の言語を取得してください。
◇以下に添付するC言語のプログラムを「目的の言語」に変換してください。
====================================================================================================