|
This is all due to the horribly designed side-by-side crap Microsoft started pushing with Windows 2000 (though it didn't really work until XP.) With SxS, you have to put your DLLs in the correct install spots (meaning let Microsoft's installer do it.) There are other solutions, but I've forgotten the rules. Here's one article on the subject (I neither endorse or condemn this article--I breezed through it):
http://69.10.233.10/KB/cpp/PrivateAssemblyProjects.aspx[^]
Do searches on "side-by-side" and/or SxS with MFC and DLL and you will start getting hits [on the nightmare Microsoft created.]
|
|
|
|
|
Thank you so much
www.logicsims.ir
|
|
|
|
|
You need to add a manifest to the app (either as a separate file or in the application resources) that tells Windows to look in the application folder for the C runtime libraries. See the Deploying Visual C++ library DLLs as private assemblies section on this page[^].
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
What is the C++ syntax for "typeof(string)"? I'm patterning after the following line from SourceGrid sample #14.
SourceGrid.Cells.Editors.ComboBox cbEditor = new SourceGrid.Cells.Editors.ComboBox(typeof(string));
I'm trying to setup a SourceGrid text editor in C++. I don't know how to make the constructor in the following statement.
SourceGrid::Cells::Editors::TextBox^ textEditor = gcnew SourceGrid::Cells::Editors::TextBox(???);
|
|
|
|
|
Into C++/CLI typeof(Something) goes to Something::typeid .
You should post this kind of questions into Managed/ C++ CLI forum.It's native coding forum.
Life is a stage and we are all actors!
|
|
|
|
|
Thanks, this works...and I'll try harder to deal with the concept of being managed when I use this stuff.
String^s="";
SourceGrid::Cells::Editors::TextBox^ textEditor =gcnew SourceGrid::Cells::Editors::TextBox(s->GetType());
|
|
|
|
|
HI,
I we go to Control panel->Network Connections we can see all the network addaptors present in the system. If we double click and connected network adaptor it will show us a status dialog box for that connection.
I am trying to open that status dialog through my application which is written in C++ using win32 programming concept.
Can any body has any idea? How to acheive this?
Birajendu
SonicWALL
Bangalore
India
|
|
|
|
|
Do you need to InternetGetConnectedStateEx ? and also see Showing Dial-up Connection Status Window[^].
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
For these sorts of things, see on Win32 ng[^]
(some Win32 gurus have Windows source code...)
|
|
|
|
|
hey every one, i got a problem about the customize the open file dialog(which use the openfinename)
when i open a open file dialog, i want the open file dialog can open in the detail mode(the default is the list style),
and in the detail mode, the syslistview32 show four columns{file name, type, size, and modify time}, but i wand add a create time or author column(whatever), i donot know how to do it
at first i a a hook function to the opnefilename, and in the hook function's wm_notify message, i got the syslistview32 and sysheader32 handle.and send message wm_command to sysheader32 handle to set the initialion view style(like list, thumnbail, icon or detail), this job i had done.
but how can i add a new column to the syslistview32 or sysheader32?at first i simulate a right click message to the sysheader32. like
NMHDR mnh;
mnh.hwndFrom = hHeader32;
mnh.code = MN_RCLICK;
SendMessage(hListview32, WM_NOTIFY, 0, (LPARAM)&nmh);
the code can pop up the menu, but i dont know how to get the handle to the pop up menu.
so i canot simulate another menu click message.
any thing i wrong? or how can i add a new column(author or create date) under the detail view style before the open file dialog show?
my english is so poor, i hope you can understand.
thank you any way.
|
|
|
|
|
Actually I want to resize child windows.
Parent window has 2 horz child windows (in 2 rows), separator between 2 child windows are not very thin (not as border of CSplliteWnd) and its height is fixed, and images are displyed on the separator.
which looks like this:
------------------------
| child window |
| |
| |
| |
------------------------
| separator | X |
| | |
------------------------
| child window |
| |
| |
| |
------------------------
I hope to find a control and put it at X place, then user can use mouse to drag-drop the control to resize the 2 related child windows along vertical direction.
Mouse can move vertically only and not over top and bottom of 2 related child windows (or top and bottom of parent window).
Any comments?
Is there a contral like this?
Thanks
|
|
|
|
|
So, I got a little bored and decided to create a desktop locker through the screensaver function of windows. I'm running XP and Dev C++ 4.9.9.2 and Dev is causing my problem. Other places I've checked said i would need to link "comctl32.lib" which I can't seem to locate on my computer or the internet for download. Incase it would be of any use I'll post my program code.
#include <iostream>
#include <windows.h>
#include <scrnsave.h>
unsigned char new1;
using namespace std;
LONG WINAPI ScreenSaverProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
switch(message)
{
case WM_CREATE:
return 0;
case WM_ERASEBKGND:
return 0;
case WM_TIMER:
uTimer = SetTimer(hwnd, 1, 1000, NULL);
return 0;
case WM_DESTROY:
KillTimer(hwnd, uTimer);
PostQuitMessage(0);
return 0;
}
return DefScreenSaverProc(hwnd,message,wparam,lparam);
}
BOOL WINAPI ScreenSaverConfigureDialog(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{
return true;
}
BOOL WINAPI RegisterDialogClasses(HANDLE hmodule)
{
return true;
}
I receive an error with the "uTimer = SetTimer(hwnd, 1, 1000, NULL);" line of code, but I'm assuming that its linked to the comctl32.lib considering I read scrnsave.h requires it; also the code compiles but does not work without the uTimer line.
|
|
|
|
|
Suposedly comctl32.lib comes with Microsoft's Platform SDK (you can download that from the MS site), i checked on my system and it sits in "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib" (yes, yes, i am still using VS2003, so sue me ), so the platform SDK thing seems to be right. No idea if you can use that with Dev C++ or not...
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> Life: great graphics, but the gameplay sux. <
|
|
|
|
|
SetTimer is linked in via user32.dll, not the common controls library. Do you have any of the Windows Platform SDKs installed? (I'm not sure what Dev C++ comes with as far as built-in libraries...)
Adam Maras | Software Developer
Microsoft Certified Professional Developer
|
|
|
|
|
No I don't have the SDK platforms, I have VS2008 on another computer or older harddrive somewhere but I have no idea which one and don't exactly prefer using VS over Dev.
|
|
|
|
|
Any info on how to use zlib to decompress .gzip file in C
I have one .gz file and i need to decompres w/o using system command in my c code?
Thanks
|
|
|
|
|
|
You don't need zlib.
zip/unzip is native in windows (Shell)
|
|
|
|
|
I use Connect serial port rs-232
In windos XP platform
|
|
|
|
|
|
my function in dll:
extern "C" _declspec(dllexport) CDialog * ShowDllDlg(HWND hWnd)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDllDlg * m_pDlg =new CDllDlg();
m_pDlg->Create(IDD_DLG_DllDLG, CWnd::FromHandle(hWnd));
m_pDlg->ShowWindow(SW_SHOW);
return m_pDlg;
}
Another function to call dll function in my test project:
void CTestDlg::OnBnClickedButtonDlltest()
{
HWND myhWnd = this->m_hWnd;
typedef CDialog * (_stdcall *Connect)(HWND hWnd);
HINSTANCE hinstDLL=NULL;
hinstDLL = ::LoadLibrary("AntiSubmarine.dll");
if (hinstDLL) {
Connect Proc;
Proc = (Connect)GetProcAddress(hinstDLL,"ShowDllDlg");
if (Proc!=(Connect)NULL) {
m_pdlg = (CDialog *)Proc(myhWnd);//in *.h file defines CDialog * m_pdlg;
//if only "Proc(myhWnd)", also the same error;
}
FreeLibrary(hinstDLL);
}
else {
AfxMessageBox("Not found dll !");
}
return;
}
when run the dll, error comes out.
modified on Wednesday, August 19, 2009 8:47 AM
|
|
|
|
|
because you free the library after creating a modless dialog, so the error happened.
it's my pleasure to make friend with you.
|
|
|
|
|
First, thank you very much for your help.
You said "free the library after creating a modless dialog". Beacuse I do not understand the dll, and for some resons, i have to use it with modless dialog. So, could you help me to edit the codes, and make the program run freely.
Finally, thanks.
it's my pleasure to make friend with you.
|
|
|
|
|
void CTestDlg::OnBnClickedButtonDlltest()
{
HWND myhWnd = this->m_hWnd;
typedef CDialog * (_stdcall *Connect)(HWND hWnd);
HINSTANCE hinstDLL=NULL;
hinstDLL = ::LoadLibrary("AntiSubmarine.dll");
if (hinstDLL) {
Connect Proc;
Proc = (Connect)GetProcAddress(hinstDLL,"ShowDllDlg");
if (Proc!=(Connect)NULL) {
m_pdlg = (CDialog *)Proc(myhWnd);
}
}
else {
AfxMessageBox("Not found dll !");
}
return;
}
if you create a modless dialog, don't free the library which include the dialog resource until you destroy the dialog, because that modless dialog is not block like mod dialog.
it's my pleasure to make friend with you.
|
|
|
|
|
Thank you very much for your answers.
I'll try it again. if there is any error, could you help me again? May I have your Emaill for contact in the future?
my Emaill: hailuolan@yahoo.com.cn
it's my pleasure to make friend with you.
|
|
|
|