dll 로드 실패가 왜 뜨는건지 아시는분 있으신가요
유리
#SingleInstance force
#NoEnv
OnMessage(DllCall(RegisterWindowMessage, str, MOVNTQ), MBC_OnMessage)
Gui, Add, ListView, x5 y5 w340 h330, 시간 |메시지
; Generated using SmartGUI Creator 4.0
Gui, Show, w350 h340, MBC Cafe SIGNAL
Gui, submit, nohide
LOG(엠카신호 v0.1)
LOG(신호 온,오프 단축키는 NPF는 F1, XXNF는 F2 입니다.)
return
LOG(text)
{
Formattime, Time, , H:mm:ss
LV_ADD(, Time, text)
}
; MBCDLL에서 이벤트가 발생할 때 호출되는 함수
MBC_OnMessage(wParam, lParam)
{
; 신호에 반응한 경우, 오핫에서 엔터를 날리면 느리기 때문에
; 먼저 DLL에서 메이플 창에 엔터를 날려주고 나서 이 함수가 호출 됨.
; 여기서 상점이 펴졌는지 확인하고 템올리고상점펴기/재대기 등의 작업을 해주면 됨
;postmessage, 0x100, 8, 917505, , MapleStory
;postmessage, 0x101, 8, 917505, , MapleStory
;PostMessage, 0x100, 13, 1835009, , MapleStory
;PostMessage, 0x101, 13, 1835009, , MapleStory
if (wParam == 1) {
if lParam
LOG(신호시작 - XXNF)
else
LOG(신호시작 - NPF)
} else if (wParam == 2) {
if lParam
LOG(신호정지 - XXNF)
else
LOG(신호정지 - NPF)
} else if (wParam == 3) {
if lParam
LOG(일상반응 - XXNF)
else
LOG(일상반응 - NPF)
} else if (wParam == 4) {
if lParam
LOG(고상반응 - XXNF)
else
LOG(고상반응 - NPF)
}
}
MBC_InitTerm()
{
global MBCDLL, SignalGetMode, SignalSetMode
global NpfFindAllDevices, NpfGetDeviceCount, NpfGetDeviceInfo, NpfSetDevice, NpfStart, NpfStop, NpfGetState
global WsFindAllAddresses, WsGetAddressCount, WsGetAddressInfo, WsSetAddress, WsStart, WsStop, WsGetState
; DLL이 이미 로드된 경우라면 언로드
if (MBCDLL) {
DllCall(WsStop)
DllCall(NpfStopDevice)
DllCall(FreeLibrary, uint, MBCDLL)
MBCDLL = 0
return
}
; DLL 및 함수 포인터들 로드
if (MBCDLL := DllCall(LoadLibrary, str, MBC.dll)) {
SignalGetMode := DllCall(GetProcAddress, uint, MBCDLL, str, SignalGetMode)
SignalSetMode := DllCall(GetProcAddress, uint, MBCDLL, str, SignalSetMode)
; Winpcap NPF
NpfFindAllDevices := DllCall(GetProcAddress, uint, MBCDLL, str, NpfFindAllDevices)
NpfGetDeviceCount := DllCall(GetProcAddress, uint, MBCDLL, str, NpfGetDeviceCount)
NpfGetDeviceInfo := DllCall(GetProcAddress, uint, MBCDLL, str, NpfGetDeviceInfo)
NpfSetDevice := DllCall(GetProcAddress, uint, MBCDLL, str, NpfSetDevice)
NpfStart := DllCall(GetProcAddress, uint, MBCDLL, str, NpfStart)
NpfStop := DllCall(GetProcAddress, uint, MBCDLL, str, NpfStop)
NpfGetState := DllCall(GetProcAddress, uint, MBCDLL, str, NpfGetState)
; Winsock Promiscuous Mode
WsFindAllAddresses := DllCall(GetProcAddress, uint, MBCDLL, str, WsFindAllAddresses)
WsGetAddressCount := DllCall(GetProcAddress, uint, MBCDLL, str, WsGetAddressCount)
WsGetAddressInfo := DllCall(GetProcAddress, uint, MBCDLL, str, WsGetAddressInfo)
WsSetAddress := DllCall(GetProcAddress, uint, MBCDLL, str, WsSetAddress)
WsStart := DllCall(GetProcAddress, uint, MBCDLL, str, WsStart)
WsStop := DllCall(GetProcAddress, uint, MBCDLL, str, WsStop)
WsGetState := DllCall(GetProcAddress, uint, MBCDLL, str, WsGetState)
; NPF 어댑터 검색
count := DllCall(NpfFindAllDevices)
msg = NPF 어댑터 개수: %count%
LOG(msg)
loop %count% {
VarSetCapacity(deviceName, 64)
VarSetCapacity(deviceDesc, 256)
DllCall(NpfGetDeviceInfo, uint, a_index, str, deviceName, str, deviceDesc)
msg = [%a_index%] %deviceDesc%
LOG(msg)
}
; 신호를 받을 NPF 어댑터 설정.
; 가장 마지막 어댑터를 사용한다
; 이건 따로 GUI로 빼서 설정할 수 있게끔 해야됨
msg = 선택된 NPF 어댑터: %deviceDesc%
LOG(msg)
if (!DllCall(NpfSetDevice, str, deviceName))
msgbox NpfSetDevice 실패
; 신호를 받을 Winsock IP 주소 설정.
; 바인드 할 주소 검색
count := DllCall(WsFindAllAddresses)
msg = 바인드 IP 주소 개수: %count%
LOG(msg)
loop %count% {
VarSetCapacity(address, 16)
DllCall(WsGetAddressInfo, uint, a_index, str, address)
msg = [%a_index%] %address%
LOG(msg)
}
; 가장 마지막 어댑터를 사용한다
; 픫bsp;; 이건 따로 GUI로 빼서 설정할 수 있게끔 해야됨
msg = 선택된 IP 주소: %address%
LOG(msg)
if (!DllCall(WsSetAddress, str, address))
msgbox WsSetAddress 실패
} else
msgbox DLL 로드 실패
}
MBC_NPFOnOff()
{
global MBCDLL, NpfStart, NpfStop, NpfGetState, SignalSetMode
; 신호 DLL이 초기화 되어 있지 않다면 먼저 초기화 한다.
if (!MBCDLL)
MBC_InitTerm()
if (MBCDLL) {
; 신호 인식 모드 설정
; 0x1 = 일상반응
; 0x2 = 고상반응
; 0x3 = 일상반응 + 고상반응
DllCall(SignalSetMode, uint, 0x1 | 0x2)
; 신호 상태에 따라 시작/정지 함수 호출
if (!DllCall(NpfGetState)) {
if (!DllCall(NpfStart))
msgbox NpfStart 실패
} else
DllCall(NpfStop)
}
}
MBC_WSOnOff()
{
global MBCDLL, WsStart, WsStop, WsGetState, SignalSetMode
; 신호 DLL이 초기화 되어 있지 않다면 먼저 초기화 한다.
if (!MBCDLL)
MBC_InitTerm()
if (MBCDLL) {
; 신호 인식 모드 설정
; 0x1 = 일상반응
; 0x2 = 고상반응
; 0x3 = 일상반응 + 고상반응
DllCall(SignalSetMode, uint, 0x1 | 0x2)
; 신호 상태에 따라 시작/정지 함수 호출
if (!DllCall(WsGetState)) {
if (!DllCall(WsStart))
msgbox WsStart 실패
} else
DllCall(WsStop)
}
}
F1::
MBC_NPFOnOff()
return
F2::
MBC_WSOnOff()
return
F12::
Reload
return
GuiClose:
exitapp
1GuiClose:
Gui, 1:Destroy오토핫키 소스는 이렇구요
일단 파일 올려봅니다
어베스트로 파일검사했으니 바이러슨 없을거에요
도와주세요..ㅜ.ㅜ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2695033 | 답변좀요ㅠㅠ (1) | 비사벌 | 2025-05-16 |
2695010 | C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) | 엘보어 | 2025-05-16 |
2694958 | 로직이 변한다는 것에 대해서 궁금합니다. | 튼동 | 2025-05-16 |
2694929 | 열혈강의 25-2 두번째 문제 질문 | 지우개 | 2025-05-15 |
2694900 | dequeue 에서 리턴값 프린트 방법알려주세요 오늘 12시까지 대화방에 있습니다 도와주세요 | 미투리 | 2025-05-15 |
2694854 | 절대값을 구할때 (2) | 그녀는귀여웠다 | 2025-05-15 |
2694827 | 이제 어떻게 공부해야할지 모르겠네요 | 새얀 | 2025-05-14 |
2694778 | 순열 계산요. | 맛조이 | 2025-05-14 |
2694754 | ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) | 파도 | 2025-05-14 |
2694731 | 리눅스 커널의 시작점 질문 | 미르 | 2025-05-13 |
2694702 | 이거 뭐가문제인가요 코드수정좀 (3) | 맑은 | 2025-05-13 |
2694675 | C언어 후위표기를 중위표기로 | 앨런 | 2025-05-13 |
2694646 | 안녕하세요 파일 합치기 함수! (1) | 연블루 | 2025-05-13 |
2694618 | 잘몰라서 설명부탁드립니다. scanf 관련 (3) | 파라 | 2025-05-12 |
2694590 | 이 코드가 뭐하는 코드일까요? #2 | 빵순 | 2025-05-12 |
2694559 | 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) | 늘솔길 | 2025-05-12 |
2694532 | 네트워크에 관하여... (4) | 황소자리 | 2025-05-12 |
2694503 | 프로그램 연산 후 바로 종료되는 현상 (6) | Judicious | 2025-05-11 |
2694450 | while문질문입니다. (1) | 허리품 | 2025-05-11 |
2694420 | C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) | 은새 | 2025-05-11 |