|
I am working on this little VC++ 6.0 simple dialog-based application.
No matter whatever I change about the styles etc I only get a combobox
that at launch being clicked shows a drop down cell (one cell) that shows one item with a spin
control on the right corner instead of a full list of items. Of course I can use
the spin control to go through all the items, but it's kind of annoying when
I can simply pick easily from a drop list that shows everything at one time.
how can I solve that problem
Trioum
|
|
|
|
|
Open your dialog in the resource editor and click on the arrow of the combobox, there you'll be able to adjust the height of your drop 'region'.
|
|
|
|
|
u can solve this by increasing the size of the combo box.
|
|
|
|
|
These days, our team will launch a new project. one of our team members suggested that we should use Borland's C++ builder to write the UI(because it's easier than VC), and Visual C++ to implement business logic code.
I'am not sure whether this is a reasonable suggestion. I always think those two compilers will generate different C++ object layout in memory , so they can't work together.
Want your ideas, very urgent. Plz
A Chinese VC++ programmer
|
|
|
|
|
I'll suggest you to use either VC++ or BC++. By mixing and matching, you'll welcome pain. And I don't think that UI designing is a real daunting task if you use MFC.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Thank you!
Yes, I learned that different compilers will generate different binary even if they compile the same c++ class.
So I object to mix IDE.
A Chinese VC++ programmer
|
|
|
|
|
You can get struct and class layouts to match by using the appropriate #pragma s, but I agree that picking one compiler is probably the best choice.
Steve
|
|
|
|
|
Hi
I want to imort dll through dynamic link in vc++ 6.0.
I know static link dll, giving the lib file in
projects->setting->link->lib path and Store the dll file in system directory. And by using “using namespace “ we can access
all the function in the dll automatically.
Now I want to know how to link dll dynamically. There are some example in google search, even I could not understand that. If you give any suggestion (step by step)or any simple example ,its very useful for me.
Regards
shakumar
shakumar
modified on Thursday, May 22, 2008 5:21 AM
|
|
|
|
|
DLLs are simple - Part 1 to 4[^]
See the DLLs and Assemblies section in this page by Hans Dietrich[^]
Also, see DLLs and Assemblies[^] under general programming.
Additionally, read in MSDN about LoadLibrary(), GetProcAddress().
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Dll's are always dynamically linked (dll stands for dynamic link library). So what's your question exactly ? Why don't you want to use the static lib provided with the dll ? (BTW this doesn't contain the code of the dll but only information about how to load the dll, basically).
You can also use LoadLibrary to load the dll and then use GetProcAddress to retrieve the address of a specific exported function of your dll. But this is a bit more complex. The main advantage is that you can handle the error when the dll is missing the way you want (and not simply have an error message saying that the dll is missing and then exit the program).
|
|
|
|
|
Thanks for your reply
As i said above ,in my programme I used shell32.dll, I import the dll through project->setting->link->giving lib path ”shell.lib”. it automatically(ctl+tab) it give the function “SHFILEOPSTRUCT.”
I want to load dll at runtime ,ie: giving the path of the dll through the code.
My doubt was when I loading dll at run time , how can I access the function from dll because at run time only dll will import, so we cannot know what are the function is available in dll. Will all the dll can import(dynamic) like this.
It may be simple for u, for me it is not understand, so give u’r suggestion.
Regards
shakumar
shakumar
|
|
|
|
|
shakumar_22 wrote: I want to load dll at runtime
It WILL be loaded at runtime. That's the purpose of the dll. As I said in my previous post, it's not because you link against shell32.lib that you are statically linking. The lib file only contains information about the way to load your dll but your dll will still be loaded at runtime.
The only thing you have to make sure is that in your project settings, you choose the runtime library as a dll: (for VC2005) open your project properties -> C/C++ entry -> "Code generation" -> "Runtime Library" and there select "Multi-threaded Debug Dll" (or "Multi-threaded Dll" if you are in release mode).
|
|
|
|
|
I think he is looking for ways to load the DLL from his program, without the help of a .lib file. That's what I understand. CPMRU is charged, you see.
[add] May I know why is this post down-voted. I'll appreciate any feedback. [/add]
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
modified on Thursday, May 22, 2008 4:49 AM
|
|
|
|
|
Yes I got that but for what reason exactly ? I honnestly it will only make things much more complex with no added value in this case. He is talking about a windows dll for which I don't see any reason why you would load it explicitely. (and I also already gave him an answer if he really wants to do load it explicitely in my first post ).
|
|
|
|
|
Cedric Moonen wrote: Yes I got that but for what reason exactly ?
May be just to explore and learn the other ways of loading a DLL?! I had to always load DLLs the LoadLibrary() way when I was working for my first employer. They had a bunch of third party DLLs to use in the project, and no corresponding .lib files. There might be a similar situation. Could be anything. But just keep the CPMRU handy, just in case.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
typedef DWORD (*GETNGLYPHS)(HDC hdc,LPCTSTR lpstr,int c,LPWORD pgi,DWORD fl);
GETNGLYPHS GetGlyphIndices =
(GETNGLYPHS)GetProcAddress(LoadLibrary("gdi32.dll"), "GetGlyphIndicesA");
.
.
.
GetGlyphIndices(hdc,save_chrs,sg_cnt,save_glyphs,1);
|
|
|
|
|
Force Code wrote: typedef DWORD (*GETNGLYPHS)(HDC hdc,LPCTSTR lpstr,int c,LPWORD pgi,DWORD fl);
generic Text data type and linking to ANSI version API.
Force Code wrote: (GETNGLYPHS)GetProcAddress(LoadLibrary("gdi32.dll"), "GetGlyphIndicesA");
can cause problem if unicode build.
|
|
|
|
|
how to restrict textbox so that it takes input only between
given numbers i.e. 1-100
Rajesh
|
|
|
|
|
Why you dont set Min/Max value for editbox?
After set these parameters you will be have this line:
DDV_MinMaxInt(pDX, m_Test, 0, 100);
|
|
|
|
|
how can I do I could not found any funtion or property of edit control to set these value .
Rajesh
|
|
|
|
|
check it in DoDataExchange Function
DDX_Control(pDX,IDC_EDIT,m_Test);
u can find something like this(example). just after this put the below written code.
DDV_MinMaxInt(pDX, m_Test, 0, 100);
|
|
|
|
|
You must be right click on the control and select Add variable and then set Category to Value now you can set Min/Max values.
|
|
|
|
|
|
rajeshgupta1253 wrote: how to restrict textbox so that it takes input only between
given numbers i.e. 1-100
Spin button control[^] exists for this purpose.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
my requirement is edit box not spin control
Rajesh
|
|
|
|