|
hi
i'm new at c++ and i have very simple question for you
"double(*)[2]" This code has defined in a function,can you explain me what does it mean ?
asdasd
|
|
|
|
|
This forum is for managed C++ question. Post this question in VC++[^] forum instead.
Prasad
MS MVP - VC++
|
|
|
|
|
Hello,
I want to program with matrix of String can you give me a syntax of this declaration
Thanks,
aef
|
|
|
|
|
array<String^, [your desired dimension here]>^ yourVariableName;
Replace [your desired dimension here] with an integer between 1 and 32 inclusive.
|
|
|
|
|
hello,
I try with this but it gives error,
and I tryed this
cli::array <string ^="" ,="" 2=""> ^ ListCapt = gcnew cli::array<string ^="" ,2=""> (100000,16);
but it gives 4 error;
but when I do this :
[code]
array < array < String ^ > ^ > ^ ListCapt= gcnew array < array < String ^ > ^ >(20);
cpt=117
for(int i=0;i<cpt;i++)
for="" (int="" j="0;j<15;j++)
" listcapt[i][j]="Convert::ToString(i+j);
[/code]
there" isn't="" error="" but="" in="" execution="" it="" give="" the="" exception
if="" you="" are="" an="" exemple="" me;
thanks
=""
<div="" class="ForumSig">aef
|
|
|
|
|
I just typed
array<String^,2>^ myMatrix = gcnew array<String^,2>( 100000, 16 ); into a C++/CLI project I'm working on right now and got no compilation error. I'm using VS2005 SP1. What errors are you getting?
|
|
|
|
|
|
|
This is a native struct:
struct BufferInfo
{
void* buffers[2];
} that gets passed to this native function:
bool CreateBuffers( BufferInfo* buffersInfo ); On return from this function the buffers member of buffersInfo points to the two halves of a double buffer, the size of which is known.
I'm trying to wrap the native code with C++/CLI. I cannot use array<Byte,2>^ to wrap void* buffers[2] because array<> is only for allocations in the CLR heap. Is there a way to wrap the native array and treat it like a managed one? Copying or marshaling the data in the buffers is not an option for performance reasons.
|
|
|
|
|
Hi,
in my experience it is best to allocate a managed array, get it pinned down
so the GC does not move it, fetch its pointer (IntPtr), then pass it on to the
native world; that way nothing needs being copied or marshaled.
I typically use an object of this class to support this process (it happens
to be C# code); the C# using statement makes sure it gets disposed of as soon
as appropriate:
public class LP_Pinner : IDisposable {
private static ILP_Environment env=LP_Environment.GetEnvironment();
private GCHandle handle;
private bool disposed;
private IntPtr ptr;
public LP_Pinner(object obj) {
handle=GCHandle.Alloc(obj, GCHandleType.Pinned);
ptr=handle.AddrOfPinnedObject();
}
~LP_Pinner() {
Dispose();
}
public void Dispose() {
if (!disposed) {
disposed=true;
handle.Free();
ptr=IntPtr.Zero;
}
}
public IntPtr Ptr {get {return ptr;}}
}
Hope this helps.
|
|
|
|
|
Unfortunately that is not an option. I have no control over the native code, which is an interface to an audio hardware driver that manages its own buffers.
|
|
|
|
|
I see no way you can have an unmanaged array being promoted to a managed one
without copying it all.
You can of course pass the pointer value from native to managed world, and use it
there as a pointer, using unsafe code (or whatever it is called in C++/CLI)
and pointer operations. But then it is not a managed object at all.
|
|
|
|
|
OK. Thanks for your input. I'm going to see if a managed class with a private void* member can use an indexed property to give access to the bytes in the buffer and not affect performance.
|
|
|
|
|
i am not able to implement tray icon for my dialog boxt..can u provide me with some code...here's my code or a dialog box now i want to make a tray icon for this..please provide help in coding for this...thanks
//---------------------------------------------------------------------------
LPSTR lpString;
HWND hWnd;
LRESULT CALLBACK DlgProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
//---------------------------------------------------------------------------
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DLGFIRST),hWnd, reinterpret_cast(DlgProc));
return FALSE;
}
//---------------------------------------------------------------------------
LRESULT CALLBACK DlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
TCHAR cPath[20];
TCHAR cUserName[20];
TCHAR cPassword[20];
switch(Msg)
{
case WM_INITDIALOG:
{
return TRUE;
}
case WM_COMMAND:
{
switch(wParam)
{
case IDOK:
{
size_t nLen;
GetDlgItemText(hWndDlg, IDC_EDIT1, cPath, 20);
nLen = strlen(cPath);
if (nLen == 0)
{
MessageBox(hWndDlg,"Please Enter SVN Path","Error",MB_ICONERROR);
break;
}
GetDlgItemText(hWndDlg, IDC_EDIT2, cUserName, 20);
nLen = strlen(cUserName);
if (nLen == 0)
{
MessageBox(hWndDlg,"Please Enter your user name","Error",MB_ICONERROR);
break;
}
GetDlgItemText(hWndDlg, IDC_EDIT3, cPassword, 20);
nLen = strlen(cPath);
if (nLen == 0)
{
MessageBox(hWndDlg,"Please Enter your Password ","Error",MB_ICONERROR);
break;
}
EndDialog(hWndDlg, 0);
std::ofstream file ("config.txt");
file << " SVN Path entered by user is -> "<<cpath <<="" std::endl;
file="" "="" svn="" user="" name="" entered="" by="" -="">" <<cusername <<="" std::endl;
file="" "="" svn="" password="" entered="" by="" user="" -="">"<
|
|
|
|
|
you are either trolling, or you are sufficiently illiterate to render any help we offer, useless.
This is Win32 code ( probably making you the last person on earth to use Win32 ), and over the past several days, you have ignored all comments directing you on the right place to ask these questions.
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
|
Hi,
I am new to this forum.I am working as a developper in C programming and working in compiler validation project. I hope I will get good response from u people as soon as possible.
My question is :
I want what are the possible ways of writing codes using 'const' keyword. I have written some.I need few more.
Plz go thru and send me any other cases where we can use const keyword in C only not C++.
const int degrees = 360;
int const degrees1 = 180;
const float pi = 3.14;
const char quit = 'q';
int * const var1;
const int * var2;
int const * var3
const char * const Var4;
char const * const Var5;
void test1() const;
const int * test2(); /* function returns a adress that
could not be modified */
void test3(const int *i);
const int arr1[]={1,2,3,4,5,6,7};
char const *arr="coderzone";
|
|
|
|
|
This is the Managed C++ forum, C can never be managed, so your question is off topic. Try the visual c++ forum ( or google )
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
there is an infinite number of const constructs; try:
int const * const * const * const * const * const * const * const * const var;
|
|
|
|
|
Hi .
I'm new to C++ and i'm reading the " c++ , Primer Plus, 5th Edition " by Stephen Prata.
Page 85 , 86 , Universal Character Names :
Cout << " My Name Is \u Hex Hex Hex He ";
OR
cout << " My Name Is \U Hex Hex Hex Hex Hex Hex Hex Hex ";
is the format we use to show some Character ( like Ø ) from other languages. The problem is :
1. My compiler ( Dev c++ ) does'nt display Iso 10646 codes and i always get the same figure
when i run the program.
2. I don't know if i'm using the right Iso 10646 code charts ( which i find on net ).
i'm just confuse becouse i like to move on to some more complicated part og programming and i
got stuck in the beginning .
Thanks for your time .
|
|
|
|
|
mooncry wrote: i got stuck in the beginning
In the beginning there was EBCDIC; don't bother trying it ...
Then there was ASCII which got extended to ANSI. I expect all compilers to
handle that correctly.
Then there was Unicode, and Visual Studio handles that well, so try Visual Studio; the Express Editions are free. If VS has a Unicode problem, show us exact code.
Good luck!
|
|
|
|
|
Hi, I am using Visual Studio 2005 C++/CLI. I have a dialog box that has 32 check boxes on it. The user can select one or more check boxes or click on a button to 'Select All' or click on a button to 'Clear All'. In C++/MFC I used the following to check all 32 check boxes.
void CBinDialog::OnButtonSetAll()
{
for (int count = 0; count < 32; count++)
CheckDlgButton(IDC_CHECK_BIN1 + count, BST_CHECKED);
}
Is there a way to do this in C++/CLI? Right now I have to do the following...
void CBinDialog::OnButtonSetAll()
{
checkBoxBin1->Checked::set(true);
checkBoxBin2->Checked::set(true);
checkBoxBin3->Checked::set(true);
.
.
.
checkBoxBin32->Checked::set(true);
}
Which works fine, but it isn't very pretty or elegant.
Thanks
Buck
|
|
|
|
|
Hi,
there are two approaches I could recommend:
THE GRAPHICAL ONE
if the layout is such that a single rectangle could cover all the CheckBoxes
without containing anything else, just add a Panel to the form covering that
rectangular area, add all the checkboxes to the new Panel.
Now you can use a loop over all Controls inside that Panel.
If other Controls fall inside the Panel, you can still loop over them all,
but now you must check for the Control being a CheckBox.
And you must set up the Panel in such a way that it does not stand out
(unless that is exactly what you want; in that case you should consider a
GroupBox).
THE COLLECTION
You could set up a collection (say an array, a List, an ArrayList, ...)
that contains references to these checkboxes. If the checkboxes got added
using Visual Designer, an array (with an initializer) may be the easiest;
if they got added by code, a List or ArrayList would be easier.
Now you can easily loop over all these checkboxes.
|
|
|
|
|
Thanks, I'll give these a whirl.
Buck
|
|
|
|
|
Hi Luc,
The layout is 4 columns of 8 check boxes, so using a panel sounds great. Since I already have the check boxes defined can I draw the panel over the existing check boxes and 'send to back'?
Buck
|
|
|
|