|
Are the edit controls on a dialog? If so, you should use something like this to properly
move focus to the control:
int i=0;
vector<edit*>R;
Edit *p;
p = R[i];
GotoDlgCtrl(p);
prithaa wrote: But when I click the mouse I am not able to move the focus to the clicked edit box.How should I do it?
You shouldn't have to do this yourself. When you click in the edit box do you get the caret?
If so, then it has the focus. If you are trying to set the focus yourself on a mouse click
then you may be preventing it from getting focus.
Mark
|
|
|
|
|
I have a class that I wrote I C# and I want to use it in a VC++ project without turning the C# class into a COM object. These are the steps that I've been given by a colleague:
I don't have code sample but I have steps how to do it. But my problem is how do I do step 9? Does anyone have a code sample of how to access the C# methods in VC++ through a type library??
Much appreciated!
L
1. Create a C# class
2. Generate a key for it - sn -k keyfile.snk
3. Put an assembly directive at top of file
[(Assembly: AssemblyKeyFile("keyfile.snk")]
4. Compile
5. regasm file.dll /tlb to generate the COM Type Library
6. gacutil -i file.dll to place file in GAC
7. Copy the generated typelibraries into the directory of your ATL/C++ project
8. #import file.tlb no_namespaces named_guids (look up the reff for exact syntax)
9. Compile ATL/C++ code and you will have access to the interfaces through the types in the imported tlb
|
|
|
|
|
Step 9 is just accessing the C# calls as if they were any COM object. They have nothing to do with C#.
So long as your project depends on the .NET framework, turning on C++/CLI or Managed C++ seems a more sensible and easier option to me.
Christian Graus - C++ MVP
|
|
|
|
|
Actually I'm going to have to use this C++ dll as a 'bridge'. I'm going to have to use it to implement an abstract interface defined outside managed code, and make calls to the managed C# dll to call certain methods to help the 'bridge' implement the interface.
What is the actual syntax of it? I'm having some trouble finding examples.
Sorry if any of these questions are ignorant, I'm a newbie to C++/COM programming.
If I were to access the C# methods as any COM object would I need to use cocreateinstance?
|
|
|
|
|
malayalite wrote: If I were to access the C# methods as any COM object would I need to use cocreateinstance?
No, having called #import, you shoud have smart pointers at your disposal. Change the #import statement to specify a namespace (get rid of the no_namespaces and find the syntax to specify one ), then intellisense will show you the rest. From memory, if you have a class called MyClass, you end up with MyClassPtr. But, that's very rusty memory, indeed.
Christian Graus - C++ MVP
|
|
|
|
|
Ok cool that seems to have done the trick.
Thanks! I really appreciate it.
|
|
|
|
|
about VC+MySQL problem
i install mysql odbc V5.0 driver
i need to ADO Connect MYSQL DB;
code:
_ConnectionPtr m_CMConnect;
::CoInitialize(NULL);
m_CMConnect.CreateInstance(__uuidof(Connection));
m_CMConnect->Open("Provider=MySQL;server=localhost;DataBase=test;port=3306;uid=root;pwd=","","",-1);
but Program run error.....
how to Ado Connect MYSQL DB;
thank
Blog:
http://360.yahoo.com/rxgmoral
|
|
|
|
|
rxgmoral wrote: ::CoInitialize(NULL);
Shouldn't this go first ? What's the error ?
Christian Graus - C++ MVP
|
|
|
|
|
Hi everyone!
I'm having trouble reading data from a text file. More specifically, I'm trying to read a function of two parameters from a text file and then pass it to an array of functions of two parameters.
This is what I have so far:
TextFile1.txt:
1+x*x+t*t*t 1.0 0.0 -4.0
Input.h:
#include <iostream><br />
#include <fstream><br />
using namespace std;<br />
void fin (double** (*f)(double, double), double* a, double* b, double* x, char* fin)<br />
{<br />
ifstream file (fin);<br />
file >> f[0] >> a[0] >> b[0] >> x[0];<br />
}
Problem 7 Ode.h:
#include <cmath><br />
#include <iostream><br />
using namespace std; <br />
const double lambda = - 50;<br />
const int n = 20;<br />
class ode<br />
{<br />
double tini;<br />
double ison;<br />
double tend;<br />
double (*sfn)(double t, double x);<br />
public:<br />
ode(double t0, double x0, double T, double (*f) (double t, double x)) <br />
{<br />
tini = t0;<br />
ison = x0;<br />
tend = T;<br />
sfn = f;<br />
} <br />
double* rungekuttaforward (int n) const;<br />
double* rungekuttabackward (int n) const;<br />
};<br />
double* ode::rungekuttaforward (int n) const<br />
{<br />
double* x = new double [n + 1];<br />
double * t = new double [n + 1];<br />
t[0] = tini;<br />
double h = (tend - tini) / n;<br />
x[0] = ison;<br />
for (int i = 0; i <= n; i++) <br />
{<br />
double K1 = h * sfn (t[i], x[i]);<br />
double K2 = h * sfn (t[i] + h/2.0, x[i] + K1/2.0);<br />
double K3 = h * sfn (t[i] + h/2.0, x[i] + K2/2.0);<br />
double K4 = h * sfn (t[i] + h, x[i] + K3);<br />
x[i+1] = x[i] + (K1 + 2.0 * K2 + 2.0 * K3 + K4) / 6.0;<br />
cout << "i = " << i << " " << "t = " << t[i] << " " << "x = " << x[i] << "\n";<br />
t[i+1] = t[i] + h;<br />
}<br />
return x;<br />
}<br />
double* ode::rungekuttabackward (int n) const<br />
{<br />
double * x = new double [n + 1];<br />
double * t = new double [n + 1];<br />
t[n + 1] = tini;<br />
double h = (tend - tini) / n;<br />
x[n + 1] = ison;<br />
for (int i = n + 1; i >= 1; i--)<br />
{<br />
double K1 = h * sfn (t[i], x[i]);<br />
double K2 = h * sfn (t[i] + h/2.0, x[i] + K1/2.0);<br />
double K3 = h * sfn (t[i] + h/2.0, x[i] + K2/2.0);<br />
double K4 = h * sfn (t[i] + h, x[i] + K3);<br />
x[i -1] = x[i] + (K1 + 2.0 * K2 + 2.0 * K3 + K4) / 6.0;<br />
cout << "i = " << i << " " << "t = " << t[i] << " " << "x = " << x[i] << "\n";<br />
t[i -1] = t[i] + h;<br />
}<br />
return x;<br />
Problem 7.cpp:
<br />
#include "Problem 7 Ode.h"<br />
#include "Input.h"<br />
#include <iostream><br />
using namespace std;<br />
void (**f[1])(double, double);<br />
int main()<br />
{<br />
double a[1];<br />
double b[1];<br />
double x[1];<br />
char *f_in = "TextFile1.txt";<br />
fin (f, a, b, x, f_in);<br />
ode part2(a[0], x[0], b[0], f[0]);<br />
double* soln2 = part2.rungekuttaforward (n);<br />
double h = (b[0] - a[0]) / n;<br />
}
This is what I get when I try to run the program:
------ Rebuild All started: Project: Assignment 4 - Problem 7, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'Assignment 4 - Problem 7', configuration 'Debug|Win32'
Compiling...
Problem 7.cpp
c:\documents and settings\jessica ann quan\my documents\visual studio 2005\projects\assignment4\assignment 4 - problem 7\input.h(11) : error C2109: subscript requires array or pointer type
c:\documents and settings\jessica ann quan\my documents\visual studio 2005\projects\assignment4\assignment 4 - problem 7\problem 7.cpp(25) : error C2664: 'fin' : cannot convert parameter 1 from 'void (__cdecl **[1])(double,double)' to 'double **(__cdecl *)(double,double)'
There is no context in which this conversion is possible
c:\documents and settings\jessica ann quan\my documents\visual studio 2005\projects\assignment4\assignment 4 - problem 7\problem 7.cpp(27) : error C2664: 'ode::ode(double,double,double,double (__cdecl *)(double,double))' : cannot convert parameter 4 from 'void (__cdecl **)(double,double)' to 'double (__cdecl *)(double,double)'
There is no context in which this conversion is possible
Assignment 4 - Problem 7 - 3 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Any tips or insight in how to get this to run properly would be greatly appreciated!
Thanks!
|
|
|
|
|
ummmmm...
The problem starts at the top, in input.h.
The compiler can't convert algebraic function text to a C/C++ function pointer.
Beyond that I have NO idea what you are trying to do
|
|
|
|
|
Hi Jessica,
seems to me you want to integrate a differential equation by Runge-Kutta method.
Your class ode expects (constructor):
(1) The starting time t0 .
(2) The initial value of the x variable x0 (x(t0) ).
(3) The ending time T .
(4) The functional description of the equation, strictly speaking, a pointer
to f(x,t) , where x'(t)=f(x,t) .
Now, while it is easy read from a text file three double values, reading the function definition it's not that easy. I suggest you to hard-code the function.
e.g.
double f(double x,double t)
{
return 1. + x*x+t*t*t;
}
int main()
{
int n=1000;
ode part2(0., -4., 1., f);
double* soln2 = part2.rungekuttaforward (n);
return 0;
}
By the way, your code, has many troubles, I think.
Why do you put function definitions in cpp headers?
Why don't you protect your headers for multiple inclusions?
And so on.
|
|
|
|
|
I am currently coding for a GUI but i need mp3 playing support. how can i "graph" the waveform of the mp3 (maybe a waveform in oscilloscope view) and the left and right channels audio output. this will be my thesis and i hope you can help me. please!
chester, chester_rulz2003@yahoo.com
|
|
|
|
|
-------------
modified 24-Nov-11 2:50am.
|
|
|
|
|
SetFileAttributes()
You may be right I may be crazy -- Billy Joel --
Within you lies the power for good, use it!!!
|
|
|
|
|
Hello,
I have images(CBitmap or HBITMAP) on TCP server side, which is implemented with Visual C++.
Is the conversion from hBitmap to Array possible? (RBG rawimage) (CreateBitmap converts Array to hBitmap)
I have implemented Java TCP Client Applet, which should display the "CBitmap or HBITMAP" image. (Server sents this image to Java Client, which should display the image.)
If someone can help, then thanks a lot.
Regards,
Harri
//---------------------------------------------
Example 1
//---------------------------------------------
C++ Example of Windows CBitmap(or HBITMAP) format:
#include <windows.h>
....
HBITMAP hBitmap;
BYTE px[] =
{
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0x00,0xFF,0x00,0xFF,0x00,0xFF ,
0xFF,0x00,0xFF,0x00,0xFF,0x00 ,
0x00,0xFF,0x00,0xFF,0x00,0xFF
};
hBitmap = CreateBitmap(48 , 4 , 1 , 1 , px);
Can the hBitmap be converted to Array again?
//HBITMAP CreateBitmap(int nWidth , int nHeight ,UINT cPlanes,UINT cBitsPerPel,CONST VOID *lpvBits)
//---------------------------------------------
Example 2:
//---------------------------------------------
Java example drawing picture:
import java.awt.*
Image myPic;
myPic= getImage(getCodeBase(), "picture.gif");
g.drawImage(myPic,100,100,this);
|
|
|
|
|
Try searching CP for one of the many DIB wrapper classes.
|
|
|
|
|
Thanks for hint. I solved this using GetDIBits-method.
btw. Now, I'm able to use my Windows remotely with Java Applet on a Web-page. (bit slow yet, but I have good ideas to improve it.)
|
|
|
|
|
Hi,
Is there anybody whp can explain to me what is the difference of using custom control and picture in a dialog based application? If i wan to display a graph, which one should i choose to use and why?
Thanks in advance
|
|
|
|
|
If you are just displaying a bitmap or icon then a picture (static) control is fine.
If you want user-interaction with the picture then a custom control is a way to go.
Mark
|
|
|
|
|
If i want to draw a squarewave just to display the output of my hardware, is it fine for me to use picture? And later i need to be able to use horizontal scroll and also be able to zoom in/out of the diagram. Can picture still be use for these purposes?
Thank U....
|
|
|
|
|
If you want to display dynamic content, creating a control allows you to just render in the Paint method. Otherwise, you need to duplicate that paint method elsewhere, to draw onto a bitmap. Of course, once you double buffer, you'll probably end up with a bitmap or two anyhow, but putting it in a control makes more sense.
Christian Graus - C++ MVP
|
|
|
|
|
I think it would be easiest to make a window in that case. Controls ARE windows but it doesn't
sound like a situation requiring a control-type interface.
Mark
|
|
|
|
|
When u said window, what do you mean actually? My application is a dialog based and i need to display the graph in a single dialog box. I'm a begineer in vc++,so many things are new to me..
thanks
|
|
|
|
|
If you are using MFC then a window would be a CWnd-derived class, which wraps a Windows window
handle (HWND). If you are not using MFC then it would just be an HWND.
Controls are windows (have an HWND) as well but add a pre-defined set of messages. Here's a
better explanation than I could ever give User Controls[^]
|
|
|
|
|
I am going to compare bitmap images by creating a hash value of the bits for each image. I have at my disposal a crypto library. I'm not asking how to do it, but I would like to know which algorithm would be your first choice? We all know these algorithms are usualy built for strength, so I am looking for one that is fast, has a small output but not so small that the same results would be obtained from different images. Any thoughts?
|
|
|
|
|