|
int num = 4 + 8;
CString szNumber = "";
szNumber.Format("%d", num);
int ones_col = atoi(szNumber.Right(1));
- Nitron
"Those that say a task is impossible shouldn't interrupt the ones who are doing it." - Chinese Proverb
|
|
|
|
|
Surely you can use the MOD operator?
int b = 4;
int c = 8;
int a = ((b + c) % 10);
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
Try:
int a = 4;
int b = 8;
int c = (a + b) % 10;
I think it is the fastest.
|
|
|
|
|
And also it is the best way to do this.
|
|
|
|
|
I want to update some text to an edit box (UpdateData(FALSE)), however i find the words displayed in a long single line...I've changed the style of the edit box to Multiline (and checked AutoVSCroll and Vertical Scroll) , but it doesnt automatically display the text in multiline form.
I tried m_csText ="i want \n mulitline" too...but it doesnt work.
anyone know why or what to do?
thks
|
|
|
|
|
try \r\n instead of \n
It should work
Ben
|
|
|
|
|
Hey it works! Thanks alot!
|
|
|
|
|
Hi while we are at it, i was wondering if we can do bolding, using similar method, as well?
|
|
|
|
|
welp, i finally got a string to pass back to VB using my dll!
the main issue i have write now is that most ways i tried to return my string, or modify a variable passed in I would get my string mixed with a bunch of end of line chars (i think thats what they are). the strings look fine in C++ when debugging, but when they go into VB they have squares (EOL's) between every character.. such that when i print them it only prints the first letter! here is a list of all the ways i tried it.. there are some easier ways to do it if i could just get rid of those little blocks.. anyone seen these before?
thanks for all your help with these strings!
BSTR __stdcall FindBankName(LPSTR strFilename, LPSTR strRoutingNumber, BSTR a)
{
}
still a newb.. cut me some slack :P
-dz
|
|
|
|
|
I had the same problem. Use this function instead:
BSTR StringReturned = SysAllocStringByteLen("Hello!",strlen("Hello!"));
return StringReturned;
|
|
|
|
|
super sweet
thanks, that werked perfect!!
still a newb.. cut me some slack :P
-dz
|
|
|
|
|
Nice, I'm happy for you !
I've forgotten to tell you that when you want to pass a string to your C++ function (as a function argument), the function looks like:
... SomeFunction(char* SomeString)
{
}
and in VB:
...SomeFunction(ByVal SomeString As String) ...
It's easier in this way isn't it ?
|
|
|
|
|
i was under the impression that i had to use BSTR for all parameters and return values for Strings.. can i use char* as parameters and return values you think? or are you saying just for parameters and to still use BSTR as the return value?
thanks!
still a newb.. cut me some slack :P
-dz
|
|
|
|
|
No, for the return type, you still have to use the BSTR type.
It's only for the parameters of your function that you can use the char*.
So, in C++, your function looks like that:
BSTR SomeFunction(char* String)
{
BSTR String = SysAllocStringByteLen(String,strlen(String));
return String;
}
And, the prototype in VB looks then:
Declare Function SomeFunction Lib "YourDll.dll" (ByVal Test As String) As String
Don't forget to include the "oleauto.h" file in your C++ file.
|
|
|
|
|
ya the char* is alot easier for me for parameters, thats what ive switched to, thanks for all the great help
still a newb.. cut me some slack :P
-dz
|
|
|
|
|
This looks like a _UNICODE thing. Was your DLL developed on an NT machine with UNICODE defined as a command parameter? If so, a regular char will be two bytes wide instead of one byte.
See USESCONVERSION in the MSDN.
W2A - wide to ascii
A2W - ascii to wide
Also, look at 'TN059: Using MFC MBCS/Unicode Conversion Macros'
|
|
|
|
|
i am running win 2000, but i dont think i have unicode anywhere, im not really familiar with it, so i would assume im not using it.. i will look into it tho, seems to make sence..
thanks!
still a newb.. cut me some slack :P
-dz
|
|
|
|
|
Error is in the signature, and marshaling assumption. According to your signature VB does not know how to manage the last parameter.
try the following
FindBankName(LPSTR strFilename, LPSTR strRoutingNumber, BSTR* a)
|
|
|
|
|
i hav a server which imitates the Windows I/o Completion port technology(for the 9x machines)by using WSASend() and WSARecv() functions
My problem is that , the Socket event which i get
is raised only when the time of fixed size is recived,
for eg: i send the packet of size 4k from cllient to server,
if the packet is exact 4k then the server scoket event raised and i can read the data, if the packet is 1k each, thatt event will not raised, that only raised when the 4k rached (4*iks), bcz of this i cantread the prev 3 packet datas..
Any solution?????
CodeTheDreams();
|
|
|
|
|
Hi
Here is my problem:
I have a Win32 application (no MFC) and want to allow the user to edit some options in a treeview inside a dialog.
But when the user edits an option in the treeview, the dialog closes as soon as a key is pressed.
The treeview has EDITLABELS on, it is possible to begin editing (TVN_BEGINLABELEDIT Notify is sent to the dialog) but as soon as an editing key (letters, numbers but not arrows)is pressed the dialog closes (TVN_ENDLABELEDIT is sent).
And the application doesn't close.
The solution is probably simple but I cannot see where the problem comes from.
Any help would be great.
Thank you in advance
Ben.
|
|
|
|
|
Hi,
How can setup MSVC++ 6.0 to automatically track which build I've created for my code so I can accurately track which is the latest build?
Such that build# =:
Build #0001 on the first compilation and
Build #0002 on the second compilation and so on and so forth.
I looked at the MSVC++ project settings tab 'Post-build step' and I haven't got a clue what to put there. Is there a place where I can find out information on how to use this feature?
Thanks a lot.
|
|
|
|
|
I saw something that might meet you needs here, haven't tried it myself though...
http://www.codeguru.com/devstudio_macros/build_number.shtml
|
|
|
|
|
After I've split a 24bit bitmap into 3 8bit channels (RGB), I want to display them using a grayscale 8bit bitmap.
Actually I set a 24bit pixel using th same value for R,G and B channel, in order to obtain 256 levels grayscale.
But it's so memory consuming!!!
I want to create an 8bit bitmap, how can I do that?
Thanks
|
|
|
|
|
HBITMAP CreateBitmapIndirect(<br />
CONST BITMAP *lpbm
);
in BITMAP structure you can set number of bits to 8
|
|
|
|
|
8 bit bitmaps are set up so that each byte in the image array is an index into a color palette having 256 RGB entries for that image. Your best bet would be to set each entry in the image's palette to a grayscale value.
For example:
If pPalette was a pointer to the palette for one of your 8bpp split bitmaps, then:
pPalette[0] = {0, 0, 0};<br />
pPalette[1] = {1, 1, 1};<br />
pPalette[2] = {2, 2, 2};<br />
...<br />
pPalette[254] = {254, 254, 254};<br />
pPalette[255] = {255, 255, 255};
Hope that helps a little.
-Mike Zinni
"No sh*t it's tough. If it wasn't, everybody and their sister would be an engineer and then you wouldn't have a job."
|
|
|
|