LPCSTR?
BlitzPlus Forums/BlitzPlus Programming/LPCSTR?| 
 | ||
| I am trying to use user32.dll to create windows gadgets that aren't included in blitz.  However, some of the function mention a variable of type LPCSTR.  Is this just a simple pointer to a null terminated char[] in C++?  Is there any way to use these in blitz so that I can use these unlisted functions? | 
| 
 | ||
| It could be those parameters return something. Then you could try and create a bank and pass the handle to that. If returning something isn't needed, I think you could also enter a zero there, or pass a string. | 
| 
 | ||
| Long Pointer C STRing | 
| 
 | ||
| O.k, so then can someone please help me with this code?  It's just a practice run now, but I need to get it to work for my gui creation program. The problems arise with the API_CreateWindow() userlib. Here's a link to the msdn createwindow() function definition http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/Windows/WindowReference/WindowFunctions/CreateWindow.asp and here's my userlib decl for API_CreateWindow(). .lib "user32.dll" API_CreateWindow% (lpClassName%,lpWindowName%,dwStyle%,x%,y%,width%,height%,hWndParent%,hMenu%,hInstance%,lpParam%) : "CreateWindow" Can you tell me what's wrong with this code? You won't be able to run it because LpCstr() is from a dll and setwindowpos/setwindowlong are from userlibs as well. | 
| 
 | ||
| LPCSTR is a pointer to a null (zero) terminated sequence of bytes (a typical string in C) , so use banks. 
Include "Includes\WIN32CONST.bb"
window=CreateWindow("MyWin",0,0,200,200,Desktop(),1)
SetWindowLong(QueryObject(window,1),GWL_STYLE,WS_VISIBLE+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+WS_MINIMIZEBOX+WS_MAXIMIZEBOX)
SetWindowPos(QueryObject(window,1),0,100,100,200,200,SWP_FRAMECHANGED)
LPCSTR_button=CreateBank(7) ; BUTTON+0
StringToBank(LPCSTR_button,"BUTTON")
LPCSTR_ok=CreateBank(3) ; OK+0
StringToBank(LPCSTR_ok,"OK")
API_CreateWindow(LPCSTR_button,LPCSTR_ok,WS_VISIBLE,10,10,100,100,QueryObject(window,1),0,0,0)
Function StringToBank(bank%, stringTMP$)
	Local stringSIZE%
	Local offset%=0
	stringSIZE=Len(stringTMP$)
	Repeat
		PokeByte(bank,offset,Asc(Mid$(stringTMP$,offset+1,1)))
		offset=offset+1
		stringSIZE=stringSIZE-1
	Until stringSIZE=0
	PokeByte(bank,offset,0)	; inserice uno zero finale, utile per passare stringhe
End Function
 | 
| 
 | ||
| Thanks, I found out that I accidentally added an extra ,0 to api_createwindow.  Anyways, I think I fixed most of the creation, but how do I get the current hinstance?  I saw another example that used getmodulehandle, but I can't get that to return anything except for 0. |