C / C++ / MFC

Put the test for equivalency inside the while loop. Currently the while loop reads all strings, when it exits the last string is in the variable, which you then test for.

"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle

This looks like "Managed C++", Microsoft's mutilation of C++ so that it fits into the .NET environment. IIRC, it was written as a "gateway drug" to get Standard C++ programmers to use the .NET environment, eventually graduating to C#.

Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.

I have tried implementing the tooltip using ctooltipctrl for drop-down list items on a combobox.

Have created one combo class to get the combo box handle and list box handle value.
From combobox I have called the presubclasswindow method of listbox and enabled tooltips using enabletooltips(true) and inside the list box class I override the ontoolhittest to get the row and rect area.

After this tnn_needtext notification has to be triggered to get the tooltip value.but in my case it is not getting triggered.

Please help me to solve this issue.

For the individual controls on dialogu box the tnn_needtext is getting triggered.

With the tracking tool tips the tooltip is getting displayed for each drop-down list item. Cant we implement the same tool tip functionality using CToolTipctrl.

I have tried all the possible scenarios to implement using ctooltipctrl, but it is not working for combo box. Except for Combo box the remaining controls i.e. listbox and other controls the Ctooltipctrl is working.

Well, the problem with "not getting TNN_NeedText" for the listbox appears to be because this listbox's parent is neither dialog nor combobox window. Instead it is a desktop!
However, TNN_NeedText like the other notifications are sent with WM_NOTIFY to the parent window.

Anyhow you have many and varied problems ... Now all GCC have a name format called ABC

Quote:

GCC A-B-C name convention

A indicates the target (arm for AArch32 little-endian, aarch64 for AArch64 little-endian).
B indicates the vendor (none or unknown for generic) . Note that this is optional (Eg: not present in arm-linux-gnueabihf)
C indicates the ABI in use (linux-gnu* for Linux, linux-android* for Android, elf or eabi for ELF based bare-metal).

C has values which seem odd until you understand the history behind it (basically AArch32 used to have a linux-gnu ABI which got changed so needed a new name so we have linux-gnueabi). For AArch32 we have linux-gnueabi and linux-gnueabihf which indicate soft float, and hard float respectively.

The bare-metal ABI will assume a different C library (newlib for example, or even no C library) to the Linux ABI (which assumes glibc). Therefore, the compiler may make different function calls depending on what it believes is available above and beyond the Standard C library.

So you have A-C your compiler is linux gnu and the output is hard floats.

What it doesn't tell me is if you are compiling on Raspbian Pi or some other linux version because that isn't inbuilt into the name. What I do know is you are putting out the right thing if you are trying to do baremetal.

Now the big problem there are big differences between where peripherals are and what they do between a Pi1, Pi2, Pi3.

So first the peripheral base address is different on a Pi1 all peripherals are at 0x20000000 on a Pi2/Pi3 they are at 0x3F000000
So that means if you ever see a peripheral with 0x20xxxxxx you know it is for a Pi1 and if you are on a Pi3 you need to change it
to 0x3Fxxxxxx. There are no exceptions every peripheral is physically moved to allow for more memory. The converse is also true
any address with 0x3Fxxxxxx is for a Pi3 and wont work on a Pi1 and you change the first two to 0x20xxxxxx

Generally we #define a variable called PI_IO_BASE or such and we just change that one number the alternative is you can autodetect it
by looking for USB hub vendor string which is on every model. The logic goes look at the Pi location if it isnt there its at the other.

By default, on Raspberry Pis equipped with the wireless/Bluetooth module (Raspberry Pi 3 and Raspberry Pi Zero W), the PL011 UART is connected to the BT module, while the mini UART is used for Linux console output. On all other models the PL011 is used for the Linux console output.

So they are the programming differences between all the PI models and it is what it is.

I suspect your code is running into one or multiple problems related to those because you can't just write code for one Pi and have it work on another unless you strictly write only using the linux drivers. The moment you start poking anything with hardware you need to be aware of model differences.

If you get stuck just ask, we bash the thing around baremetal I never use linux at all ... so we know it pretty well.

Thanks, I am embarrassed , I think you told me the "prefix format" long time ago.
I am just getting too old for all this stuff.

My uncle whom I never met "emigrated " in 1948 to Australia after Communists took over.
We for obvious reasons we did not keep in touch, but I remember in the only letter we got from him he said he bought Jawa, Czech made, motorcycle and eating prawns was a "shell spitting affair".
Of course we knew about Jawa , but prawns?
I think with computers abilities I could do some search for relatives still living in "down under".

I just reinstalled TCF and can run its diagnostic test.
Still no output to TCF terminal. But its a start.

I actually build simple "hello world" app and that should (?) work independently from memories of these processors.

I think the processor dependencies or in-dependencies is "hidden" somewhere in TCF make.
But that is little out of my league.

Yes Hello.C just uses all linux calls what may be problematic is if you use floats.

GCC still defaults to some standard hard float and they are different on each model.
So the very minimum I would specify the flags for the model.

What I forgot to tell you is if you use the flags for the Pi1 the produced code will work on all
other models. The models are supersets of each other. It a bit like intel processors if we
lined i386, i486, i586 code written for i386 runs on i486 and i586 however i586 code wont
always run on i386 because it has extra instructions. Same with arm ARM6 < ARM7 < ARM8 so
ARM6 code runs on any model but ARM8 code has extra codes and may not run on ARM.