안녕하세요. 제가 하고자 하는건
VB .NET에서 C++로 만든 함수를 호출하면 C++이 값을 지정해주는 것을 해보려고 합니다.
.NET은 디컴파일로 안에 상수값 같은 것들이 다 보이니까 ㅋㅋ 안보이게 할려고요.
우선 제가 C++을 전혀 모르지만 검색을 통해 DLL을 만들어 봤습니다.
#include "stdafx.h"
#include "string"
#define TestDLL extern "C" __declspec(dllexport)
struct TEST_STRUCT
{
char sangsu1[32];
char sangsu2[32];
char sangsu3[32];
};
extern "C" __declspec(dllexport) void SetDllData(TEST_STRUCT *t)
{
strcpy_s(t->sangsu1,"
http://naver.com");
strcpy_s(t->sangsu2, "123456");
strcpy_s(t->sangsu3, "
https://google.com");
}
요렇게 빌드를 해서 , VB .NET 실행파일 위치에 붙여넣고!
Dllimport를 이렇게 불러오고,
Public Declare Sub SetDllData Lib ".\TestDLL.dll" Alias "SetDllData" (ByRef param As TestDll)
Struct에 대응되면 클래스도 만들고,
<StructLayout(LayoutKind.Sequential)> _
Public Class TestDll
Public param1 As IntPtr
Public param2 As IntPtr
Public param3 As IntPtr
End Class
Form.load 에서 이런식으로 콜했는데요...
Dim tes As TestDll = New TestDll
SetDllData(tes)
이건 뭐 오류도 안뜨고 어플이 그냥 죽어버립니다...
검색으로도 한계가 왔고 주변에 C++을 아는 사람이 없어서..(눈물 ㅠㅠ)
여기에 의견을 부탁드려봅니다~
somebody help me~~~~~~~