|
There's a member method called GetCheck. It returns a BOOL, which is an int, 0 is not checked.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
If you used Class Wizard and added a variable of type Value, it must have defined it as BOOL.
When you want to check the state of the checkbox, you can call UpdateData(TRUE) and that will copy the state of the control in your variable
UpdateData(TRUE);
if (m_checkBox)
{
}
else
{
}
To change the state of the control, assign a new value to your variable and call UpdateData(FALSE)
Note UpdateData() processes all controls that have associated "Value" variables at once.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Jose Lamas Rios wrote:
If you used Class Wizard and added a variable of type Value, it must have defined it as BOOL
Damn, I missed that bit.
I hate that updatedata stuff, I never use it ( although I know all about it, I just missed it in his question ).
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Christian Graus wrote:
I hate that updatedata stuff, I never use it.
Yep, I don't like it much myself...
Christian Graus wrote:
( although I know all about it, I just missed it in his question ).
I'm sure you do
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
Thanks, this is what I needed!
|
|
|
|
|
Hello folks,
This one has been bugging me for quite a while, I sort of have a solution but it is quite time conuming.
I have a DLL written in VB.NET that I would like to use in console applciation C++.
Project properties in VB.NET are set for COM interop, and I can see in the registry after I run it.
The problem comes up when I try to use if in C++.
Here is import statement:
#import "\VOT\ADLL\ADLL\bin\Debug\AndrDLL.tlb" raw_interfaces_only raw_native_types no_namespace
but I cannot even expose methods correctly, C++ does not see the interface...
One way to fix is rewriting Vb project to C# project.
Can anyone suggest something better and faster?
Thanks in advance.
Sincerely,
Max Pastchenko
|
|
|
|
|
Has anyone, in fact, successfully used a VB.NET dll in C++. I wrote a small VB project that creates dll, which just adds two numbers. I get some exception. While the code converted to C# works fine.
this is my code:
ICalculatorPtr mycalculator("CompareDLL.Test");
long one = 10;
long two = 20;
long lBla;
mycalculator->Add(one,two,&lBla);
if I try to use ICalculator, i get error message cannot create abstract class...
Sincerely,
Max Pastchenko
|
|
|
|
|
writing an answer, to one part pf problem.
for previous post: initializing COM actually worked
// initialize COM
HRESULT hr = CoInitialize(NULL);
Sincerely,
Max Pastchenko
|
|
|
|
|
Is it possible that DLL project is implemented incorrectly?
I still dont see my interface in the dropdown.....
Sincerely,
Max Pastchenko
|
|
|
|
|
.hmmmmmmm
There is something I am confused about now, I hope someone can clarify this for me
SO i have added one method to an interface in VB.NET created DLL used it in C++ works fine. Now, I add another method to it, it does not display second method. When I delete original method from VB.NET code, in C++ it still sees it present in the dropdown but gives me compilation error.
Can someone please clarify this?
Sincerely,
Max Pastchenko
|
|
|
|
|
problem solved.
Every time VB builds a project, a .tlb is created (privided COM Interop option is chosen) This tlb is linked with a C++ project that uses .DLL. So when I already have a .tlb and decide to rebuild my VB DLL project a tlb is basically recreated. The solution i found for myself is to rebuild my DLL project after closing C++ project and then opening C++ project again. Of course initializing COM is another thing that needs to be done to properly use DLL
Sincerely,
Max Pastchenko
|
|
|
|
|
I have a small console program that I have written that seems to execute correctly, but I keep getting a Debug Assertion Failed! error when the program is exiting. And it points to this file dbgdel.cpp line 52 and Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse).
If I just comple a release version I do not get any error messages when the program exits.
I am stuck on how to fix this error. Is it important that I do fix it?
Any help will be great.
-----------------------
Ok now what?
-----------------------
|
|
|
|
|
It looks to me like perhaps you're calling delete twice ? When you delete a pointer, do you set it to NULL ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
I don't see any place that I am calling delete twice. I just got a different error. This one said "DAMAGE: after Normal block (#48) at 0x00F74F18" and when I click on the "Ignore" button then I get the first error message again.
The program does make calles to a third parties api that I am using is it possible that something in thier code is calling delete after my code has finished?
-----------------------
Ok now what?
-----------------------
|
|
|
|
|
It's entirely possible that a third party API is creating the ASSERT. Look at the call stack to see where the call comes from that ends up with that ASSERT.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Orville Warnick wrote:
And it points to this file dbgdel.cpp line 52
Can you set a breakpoint on this line? When the breakpoint is hit, check the call stack to see how your program got there.
Orville Warnick wrote:
If I just comple a release version I do not get any error messages when the program exits.
You may not get an error message, but the symptom that caused the error still exists.
Orville Warnick wrote:
Is it important that I do fix it?
That all depends on if you want a bug in your program.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Anyone has a hint as to why a service might start successfully on WinXP and Win2003 machines, but not on Win2000 machines?
|
|
|
|
|
How do you define "successfully"? First thought is that you are using an API function that is only supported in XP or W2K3.
|
|
|
|
|
Successfully as in starts up, runs, and keeps running until i decide to stop it. On Win2000 it displays that infamous message box saying that the service cannot start in a timely fashion.
|
|
|
|
|
My first rule of writing services - start a ssecnd thread as quickly as possible, and do all your REAL work in the second thread. Leave the primary thread to report status back to the service control handler and to respond to the service requests.
You probably are doing everything in a signle thread, and on Windows 2000 something is taking longer than the 6 or 10 seconds Win2K is willing to wait before declaring your service 'stuck'.
|
|
|
|
|
Your first rule also happens to be my rule as well
Actually it is a service pack issue. On some Win2K's it was working ok, but on some others it wasn't. The ones on which it failed did not have SP4 installed.
We're still investigating it further...thanks for stopping by and help just the same!
|
|
|
|
|
char read_ack_buffer[30] ="";
char read_resp_buffer[30] ="";
char ser_no_buffer[20]="";
memset (read_ack_buffer, '\0', 30);
memset (read_resp_buffer, '\0', 30);
memset (ser_no_buffer, '\0', 20);
i=0;j=0;
.....
do
{
if (!ReadFile(hPort, &ch, 1, &Len, NULL))
goto fin ;
else
{
fprintf(fp,"%c\n",ch);
read_ack_buffer[i] = ch;
if(i>=3 && i<9)
{
ser_no_buffer[j] = ch;
j++;
}
if(i>=10)
{
if(i==10)j=0;
read_resp_buffer[j] = ch;
j++;
}
}
i++;
}while(Len == 1);
I have the above which reads values from the COM port.
I read certain values into certain arrays.
When I compile the code in debug mode all works fine.
But when I compile in release mode, the arrays read_ack_buffer and ser_no_buffer gets same value even though the control does'nt go into the
if(i>=3 && i<9) loop when i<3 and i>9.
How do I resolve this...thanks in advance..
|
|
|
|
|
I have a VC++ solution containing two projects. I can open the solution and work with it without any problems on my laptop PC. But when I try to open it on my desktop PC, I get this error saying it can not open the .vcproj file for one of the projects. (It opens the other project fine.)
I am using the same version of Visual Studio (.NET 2003 Ent. Arch. MSDN) and have copied the solution from the laptop to the desktop to be sure I have all the same files and to be certain the .vcproj file is valid. I can open other similar solutions on both computers.
Any ideas?
If you continue to do the same things you always did, don't be surprised if you get the same results you always got.
|
|
|
|
|
Is there a way to reset all the objects on my dialog app. I have a number to text edit boxes, check boxes and radio buttons. I did't want to have to step thru each one to initialize.
Thanks
Tom Wright
tawright915@yahoo.com
|
|
|
|
|
I doubt it. You could write a method that does it by iterating through all the controls and checks their type. Or look, someone else on this site may have done it already.
Christian Graus - Microsoft MVP - C++
|
|
|
|