Вопросы и ответы по программированию.

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
DenDav
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 20.05.2008
Поблагодарили: 4 раза
Контактная информация:

#166 Сообщение 11.12.2011, 20:43

Народ, кто-нибудь пробовал прикрутить GDi+ в дллку по этой статье, чтобы она показывала сплэш скрин jpeg картинкой?
А то когда я компилирую библиотеку, компилятор выдаёт такую ошибку:
Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

Using codepage 1251 as default
Creating splash.RES
RC: RCPP -CP 1251 -f C:\Users\Denis\Desktop\ASM\Test\DLL_NEW\RCa03088 -g C:\User
s\Denis\Desktop\ASM\Test\DLL_NEW\RDa03088 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I
.

splash.rc.
Writing JPG:9000, lang:0x409, size 58964
Assembling: splash.asm
Creating library splash.lib and object splash.exp
splash.obj : error LNK2001: unresolved external symbol _gdiplusLoadBitmapFromRes
ource@16
SPLASH.DLL : fatal error LNK1120: 1 unresolved externals

C:\Users\Denis\Desktop\ASM\Test\DLL_NEW>
Исходник

Код: Выделить всё

   .386
   .model flat, stdcall
   option casemap:none
   
   include \masm32\include\windows.inc
   include \masm32\include\user32.inc
   include \masm32\include\kernel32.inc
   include gdiplus.inc
   ;include gdiplusLoadBitmapFromResource.inc
   

   includelib \masm32\lib\user32.lib
   includelib \masm32\lib\kernel32.lib
   includelib \masm32\lib\gdiplus.lib


gdiplusLoadBitmapFromResource proto :HMODULE, :LPSTR, :LPSTR, [arial]:D[/arial]WORD

GdiplusStartupInput struc
    GdiplusVersion 				dd ?
    DebugEventCallback 			dd ?
    SuppressBackgroundThread 	BOOL ?
    SuppressExternalCodecs		BOOL ?
GdiplusStartupInput ends
   
   .data
   gdiplusToken dd ?
   gdiplusSInput GdiplusStartupInput <1, NULL, FALSE, FALSE>
   jpgImage		dd NULL
   jpgType			db "JPG", 0
   drawJpg			BOOL FALSE
   ClassName db "SplashWndClass",0
   TimerID dd 0

   .data
   hInstance dd ?


   .code


      invoke GetModuleHandle, 0
      mov hInstance, eax
      
      ; Initialize GDI+
      invoke GdiplusStartup, addr gdiplusToken, addr gdiplusSInput, NULL

   DllEntry proc hInst:DWORD, reason:DWORD, reserved1:DWORD
      .if reason==DLL_PROCESS_ATTACH  ; When the dll is loaded
         push hInst
         pop hInstance
         call ShowBitMap
      .endif
      mov eax,TRUE
      ret
   DllEntry Endp
   ShowBitMap proc
           LOCAL wc:WNDCLASSEX
           LOCAL msg:MSG
           LOCAL hwnd:HWND
           mov   wc.cbSize,SIZEOF WNDCLASSEX
           mov   wc.style, CS_HREDRAW or CS_VREDRAW
           mov   wc.lpfnWndProc, OFFSET WndProc
           mov   wc.cbClsExtra,NULL
           mov   wc.cbWndExtra,NULL
           push  hInstance
           pop   wc.hInstance
           mov   wc.hbrBackground,COLOR_WINDOW+1
           mov   wc.lpszMenuName,NULL
           mov   wc.lpszClassName,OFFSET ClassName
           invoke LoadIcon,NULL,IDI_APPLICATION
           mov   wc.hIcon,eax
           mov   wc.hIconSm,0
           invoke LoadCursor,NULL,IDC_ARROW
           mov   wc.hCursor,eax
           invoke RegisterClassEx, addr wc
           INVOKE CreateWindowEx,NULL,ADDR ClassName,NULL,\
              WS_POPUP,CW_USEDEFAULT,\
              CW_USEDEFAULT,250,250,NULL,NULL,\
              hInstance,NULL
           mov   hwnd,eax
           INVOKE ShowWindow, hwnd,SW_SHOWNORMAL
           .WHILE TRUE
                   INVOKE GetMessage, ADDR msg,NULL,0,0
                   .BREAK .IF (!eax)
                   INVOKE TranslateMessage, ADDR msg
                   INVOKE DispatchMessage, ADDR msg
           .ENDW
           mov     eax,msg.wParam
           ret
   ShowBitMap endp
   WndProc proc hWnd:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
           LOCAL ps:PAINTSTRUCT
           LOCAL hdc:HDC
           LOCAL hMemoryDC:HDC
           LOCAL hOldBmp:DWORD
           LOCAL bitmap:BITMAP
           LOCAL DlgHeight:DWORD
           LOCAL DlgWidth:DWORD
           LOCAL DlgRect:RECT
           LOCAL DesktopRect:RECT


           .if uMsg==WM_DESTROY
                   .if jpgImage!=0
                           invoke GdiplusShutdown, gdiplusToken
                   .endif
                   invoke PostQuitMessage,NULL
           .elseif uMsg==WM_CREATE
                   invoke GetWindowRect,hWnd,addr DlgRect
                   invoke GetDesktopWindow
                   mov ecx,eax
                   invoke GetWindowRect,ecx,addr DesktopRect
                   push  0
                   mov  eax,DlgRect.bottom
                   sub  eax,DlgRect.top
                   mov  DlgHeight,eax
                   push eax
                   mov  eax,DlgRect.right
                   sub  eax,DlgRect.left
                   mov  DlgWidth,eax
                   push eax
                   mov  eax,DesktopRect.bottom
                   sub  eax,DlgHeight
                   shr  eax,1
                   push eax
                   mov  eax,DesktopRect.right
                   sub  eax,DlgWidth
                   shr  eax,1
                   push eax
                   push hWnd
                   call MoveWindow
                   invoke gdiplusLoadBitmapFromResource, hInstance, 9000, addr jpgType, addr jpgImage
                   ;mov hBitMap,eax
                   invoke SetTimer,hWnd,1,2000,NULL
                   mov TimerID,eax
           .elseif uMsg==WM_TIMER
                   invoke SendMessage,hWnd,WM_LBUTTONDOWN,NULL,NULL
                   invoke KillTimer,hWnd,TimerID
           .elseif uMsg==WM_PAINT
                   invoke BeginPaint,hWnd,addr ps
                   mov hdc,eax
                  ; invoke CreateCompatibleDC,hdc
                   mov hMemoryDC,eax
                  ; invoke SelectObject,eax,hBitMap
                   mov hOldBmp,eax
                   ;invoke GetObject,hBitMap,sizeof BITMAP,addr bitmap
                   invoke gdiplusLoadBitmapFromResource, hInstance, 9000, addr jpgType, addr jpgImage
                  ; invoke StretchBlt,hdc,0,0,250,250,\
                   ;       hMemoryDC,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCCOPY
                  ; invoke SelectObject,hMemoryDC,hOldBmp
                  ; invoke DeleteDC,hMemoryDC
                   invoke EndPaint,hWnd,addr ps
           .elseif uMsg==WM_LBUTTONDOWN
                   invoke DestroyWindow,hWnd
           .else
                   invoke DefWindowProc,hWnd,uMsg,wParam,lParam
                   ret
           .endif
           xor eax,eax
           ret
   WndProc endp

   End DllEntry

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#167 Сообщение 12.12.2011, 08:54

А зачем ты это:

Код: Выделить всё

;include gdiplusLoadBitmapFromResource.inc
закомментил? Это ж твоя процедура, которую компилятор найти не может.

Внимательно посмотри пример. Там в конце (не знаю, почему именно там) есть

Код: Выделить всё

include gdiplusLoadBitmapFromResource.inc
include msghandlers.asm

DenDav
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 20.05.2008
Поблагодарили: 4 раза
Контактная информация:

#168 Сообщение 12.12.2011, 16:28

$t@t!c_V()1D
Снял коммент с gdiplusLoadBitmapFromResource.inc получилось вот что:

Код: Выделить всё

Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

Using codepage 1251 as default
Creating splash.RES
RC: RCPP -CP 1251 -f C:\Users\Denis\Desktop\ASM\Test\DLL_NEW\RCa02544 -g C:\User
s\Denis\Desktop\ASM\Test\DLL_NEW\RDa02544 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I
 .

splash.rc.
Writing JPG:9000,       lang:0x409,     size 58964
 Assembling: splash.asm
-----------------------------------------
WARNING Duplicate include file gdiplus.inc
-----------------------------------------
gdiplusLoadBitmapFromResource.inc(13) : error A2034: must be in segment block :
gdiplusLoadBitmapFromResource
gdiplusLoadBitmapFromResource.inc(15) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(16) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(17) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(18) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(19) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(20) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(21) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(22) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : lpType
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 3
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : lpName
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(27) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(28) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(29) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(30) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(31) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(36) : error A2006: undefined symbol : rcRes
gdiplusLoadBitmapFromResource.inc(36) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(36) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(36) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(36) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(37) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(38) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(39) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(40) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(45) : error A2006: undefined symbol : rcRes
gdiplusLoadBitmapFromResource.inc(45) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(45) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(45) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(45) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(46) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(47) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(48) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(49) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(51) : error A2006: undefined symbol : hResData

gdiplusLoadBitmapFromResource.inc(51) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(51) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(52) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(53) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(54) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(55) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(57) : error A2006: undefined symbol : sizeOfRe
s
gdiplusLoadBitmapFromResource.inc(57) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(57) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(58) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(59) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(60) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(61) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(63) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(63) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(63) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(64) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : sizeOfRe
s
gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 3
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : hResData

gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : pbuffer
gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(66) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(67) : error A2006: undefined symbol : CreateSt
reamOnHGlobal
gdiplusLoadBitmapFromResource.inc(68) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(69) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(70) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(71) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(76) : error A2006: undefined symbol : pBitmapF
romStream
gdiplusLoadBitmapFromResource.inc(76) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(76) : error A2006: undefined symbol : pIStream

gdiplusLoadBitmapFromResource.inc(76) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(76) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(81) : error A2006: undefined symbol : GetHGlob
alFromStream
gdiplusLoadBitmapFromResource.inc(82) : error A2006: undefined symbol : hIStream

gdiplusLoadBitmapFromResource.inc(82) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(82) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(83) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(83) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(83) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(84) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(84) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(84) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(86) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(87) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(88) : fatal error A1010: unmatched block nesti
ng : gdiplusLoadBitmapFromResource

C:\Users\Denis\Desktop\ASM\Test\DLL_NEW>
А если закомментировать gdiplus.inc то вот что выходит:

Код: Выделить всё

Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

Using codepage 1251 as default
Creating splash.RES
RC: RCPP -CP 1251 -f C:\Users\Denis\Desktop\ASM\Test\DLL_NEW\RCa02736 -g C:\User
s\Denis\Desktop\ASM\Test\DLL_NEW\RDa02736 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I
 .

splash.rc.
Writing JPG:9000,       lang:0x409,     size 58964
 Assembling: splash.asm
gdiplusLoadBitmapFromResource.inc(13) : error A2034: must be in segment block :
gdiplusLoadBitmapFromResource
gdiplusLoadBitmapFromResource.inc(15) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(16) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(17) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(18) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(19) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(20) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(21) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(22) : error A2012: PROC, MACRO, or macro repea
t directive must precede LOCAL
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : lpType
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 3
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : lpName
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(27) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(27) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(27) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(28) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(29) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(30) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(31) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(36) : error A2006: undefined symbol : rcRes
gdiplusLoadBitmapFromResource.inc(36) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(36) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(36) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(36) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(37) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(38) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(39) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(40) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(45) : error A2006: undefined symbol : rcRes
gdiplusLoadBitmapFromResource.inc(45) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(45) : error A2006: undefined symbol : hInst
gdiplusLoadBitmapFromResource.inc(45) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(45) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(46) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(47) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(48) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(49) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(51) : error A2006: undefined symbol : hResData

gdiplusLoadBitmapFromResource.inc(51) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(51) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(52) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(53) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(54) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(55) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(57) : error A2006: undefined symbol : sizeOfRe
s
gdiplusLoadBitmapFromResource.inc(57) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(57) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(58) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(59) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(60) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(61) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(63) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(63) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(63) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(64) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : sizeOfRe
s
gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 3
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : hResData

gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(66) : error A2006: undefined symbol : pbuffer
gdiplusLoadBitmapFromResource.inc(66) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(66) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(67) : error A2006: undefined symbol : CreateSt
reamOnHGlobal
gdiplusLoadBitmapFromResource.inc(68) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(69) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(70) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(71) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(76) : error A2006: undefined symbol : pBitmapF
romStream
gdiplusLoadBitmapFromResource.inc(76) : error A2114: INVOKE argument type mismat
ch : argument : 2
gdiplusLoadBitmapFromResource.inc(76) : error A2006: undefined symbol : pIStream

gdiplusLoadBitmapFromResource.inc(76) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(76) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(81) : error A2006: undefined symbol : GetHGlob
alFromStream
gdiplusLoadBitmapFromResource.inc(82) : error A2006: undefined symbol : hIStream

gdiplusLoadBitmapFromResource.inc(82) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(82) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(83) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(83) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(83) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(84) : error A2006: undefined symbol : hbuffer
gdiplusLoadBitmapFromResource.inc(84) : error A2114: INVOKE argument type mismat
ch : argument : 1
gdiplusLoadBitmapFromResource.inc(84) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(86) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(87) : error A2034: must be in segment block
gdiplusLoadBitmapFromResource.inc(88) : fatal error A1010: unmatched block nesti
ng : gdiplusLoadBitmapFromResource

C:\Users\Denis\Desktop\ASM\Test\DLL_NEW>

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#169 Сообщение 12.12.2011, 17:50

Пробовал так же, как и в примере, инклуд этого...хедера(?) в конец поместить, а не в начало?

DenDav
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 20.05.2008
Поблагодарили: 4 раза
Контактная информация:

#170 Сообщение 12.12.2011, 18:30

Да, но там при компиляции были ошибки типа неизвестная функция GdiplusStartup, поэтому сделал так:

Код: Выделить всё

.code


      invoke GetModuleHandle, 0
      mov hInstance, eax
      
	  include gdiplusLoadBitmapFromResource.inc
      ; Initialize GDI+
      invoke GdiplusStartup, addr gdiplusToken, addr gdiplusSInput, NULL
А при компиляции:

Код: Выделить всё

Microsoft (R) Windows (R) Resource Compiler, Version 5.00.1823.1 - Build 1823
Copyright (C) Microsoft Corp. 1985-1998. All rights reserved.

Using codepage 1251 as default
Creating splash.RES
RC: RCPP -CP 1251 -f C:\Users\Denis\Desktop\ASM\Test\DLL_NEW\RCa04740 -g C:\User
s\Denis\Desktop\ASM\Test\DLL_NEW\RDa04740 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I
 .

splash.rc.
Writing JPG:9000,       lang:0x409,     size 58964
 Assembling: splash.asm
gdiplusLoadBitmapFromResource.inc(67) : error A2006: undefined symbol : CreateSt
reamOnHGlobal
gdiplusLoadBitmapFromResource.inc(81) : error A2006: undefined symbol : GetHGlob
alFromStream

C:\Users\Denis\Desktop\ASM\Test\DLL_NEW>

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#171 Сообщение 13.12.2011, 11:18

DenDav
Странно. Может, просто в gdiplusLoadBitmapFromResource.inc вверху над include gdiplus.inc ещё добавить include windows.inc?

DenDav
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 20.05.2008
Поблагодарили: 4 раза
Контактная информация:

#172 Сообщение 13.12.2011, 17:14

$t@t!c_V()1D
Получаются те же ошибки и варнинг на дублирующийся inc файл.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#173 Сообщение 13.12.2011, 21:51

DenDav
Ну, увы, для дальнейших экспериментов мне необходимо было бы установить MASM, но пока не до того, увы - сессия на носу. Но мне кажется, что мы идём в верном направлении. Придётся вам методом научного тыка поработать.

Аватара пользователя
nikit-xxx
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 28.11.2007
Благодарил (а): 44 раза
Поблагодарили: 5 раз

#174 Сообщение 19.12.2011, 20:54

Имеется: gcc-4.4.1-tdm-2 в составе Code::Blocks 10.05.
Как сделать чтобы при компиляции не создавались/автоматически удалялись объектные файлы(*.o) ?
Откуда иксы в моём нике
Изображение
Изображение
скачать С. Прата. Язык программирования C++. Лекции и упражнения. 5-е изд (*Выровнена нумерация страниц, *Содержание)
Краткая инструкция по созданию пиратки-распака CS/HL
Изображение
Использование тэга подсветки синтаксиса
[syntax lang="cpp" lines="n"]
#include <iostream>
using namespace std;

struct cl{
static void f() { cout << "Hi, user!\n"; }
int i;
};

int main()
{
cl::f();
//cl::i = 1;
return 0;
}
[/syntax]

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#175 Сообщение 19.12.2011, 23:25

nikit-xxx
Могу предположить, что будет достаточно прописать их удаление в makefile? А вообще - зачем оно нужно - вот в чём вопрос... Может вы что-то делаете не так (или хотите не того ;) )?

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#176 Сообщение 21.12.2011, 21:23

null
Где бы взять какой-нить hellow wolrd, где бы не было ничего, кроме как обработки параметров --help, --version, поддержки нескольких языков (для того же --help), ну некоторое другое что встречается практически во всех программах.
В сложных готовых проектах копаться не удобно.

Добавлено спустя 1 минуту 59 секунд:
Есть вообще какие-то стандарты или правила? Вот смотрю ихсодники mkdir.

Добавлено спустя 18 минут 53 секунды:
http://www.firststeps.ru/linux/ вот что-то нашёл хорошое

Добавлено спустя 17 секунд:
%-) я как обычно сам с собой
в c++ можно void aaa(char *&s), а как аналогичное проделать в чистом C?
То есть если у меня есть переменная char *s в main, а я её хочу инициализироать s=(char *)malloc.... в какой-то функции

Аватара пользователя
nikit-xxx
Лейтенант
Лейтенант
Сообщения: 208
Зарегистрирован: 28.11.2007
Благодарил (а): 44 раза
Поблагодарили: 5 раз

#177 Сообщение 22.12.2011, 18:53

MOZGIII
спасибо так сказать за направление, почитаю как появится время.
Откуда иксы в моём нике
Изображение
Изображение
скачать С. Прата. Язык программирования C++. Лекции и упражнения. 5-е изд (*Выровнена нумерация страниц, *Содержание)
Краткая инструкция по созданию пиратки-распака CS/HL
Изображение
Использование тэга подсветки синтаксиса
[syntax lang="cpp" lines="n"]
#include <iostream>
using namespace std;

struct cl{
static void f() { cout << "Hi, user!\n"; }
int i;
};

int main()
{
cl::f();
//cl::i = 1;
return 0;
}
[/syntax]

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#178 Сообщение 22.12.2011, 19:21

GanGSISoft
Передать указатель на переменную.

Код: Выделить всё

int str_init(char **str, size_t len)
{
	*str = malloc(len);
	if (!str) return -1;

	memset(*str, 'a', len);
	return 0;
}

int main(void)
{
	size_t size = 10;
	char *new_str = NULL;

	if (str_init(&new_str, size) != 0)
	{
		return -1;
	}

	printf("%*s\n", size, new_str);
	free(new_str);
	return 0;
}
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
Bakr
Капитан
Капитан
Сообщения: 482
Зарегистрирован: 30.07.2008
Поблагодарили: 1 раз
Контактная информация:

#179 Сообщение 22.12.2011, 19:56

каким образом в джаве , кроме password.getText()(он deprecated); можно вытащить строку из JPasswordField.
Инвайт на Dropbox.+250 мб бесплатно.
мой minigame сервер
Изображение
цитатник
maximus_2007-61rus писал(а):КАК ИГРАТЬ "NOT STEAM CS SOURCE" НА STEAM СЕРВЕРАХ
ПРОШУ ПОМОЩИ ЗНАЮЩИХ ЛЮДЕЙ!! МОДЕРЫ ОТКЛИКНИТЕСЬ))) ПРИ ПОПЫТКЕ ЗАЙТИ НА ЛИЦЕНЗИОННЫЙ СЕРВЕР ПИШЕТ ЧТО НЕЛЬЗЯ ТИПА, В НЕТЕ НИЧЕГО ПУТНОГО НАЙТИ НЕ СМОГ, ЗНАЮ ЧТО ЕСТЬ ВАРИАНТ ИГРАТЬ. :Search: :Search:
Dimon199482 писал(а):У меня проблемы с реу ставлю его на серер а к сереру могут только подлключится те у кого(Klass С).Да и влогаг все по локалке.Кто занет помогите советом.

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#180 Сообщение 22.12.2011, 20:14

Вероятно,
http://docs.oracle.com/javase/6/docs/ap ... Password()

Говорят, SWT лучше Swing.

Ответить Вложения 1