|
|
what the "ListView_DeleteColumn" function do? it's not a .net function...so write the code here if you want an answer
|
|
|
|
|
This is driving me up the wall so I hope someone can help
I have an existing Native C++ DLL created in visual studio 2008.
I want to use some of the class's and the functionality that they provide from within a C++/CLI project (wrapper DLL) which in turn can be used from other .NET applications so in affect I will have a .NET application which references a C++/CLI dll which in turn references a native C++ dll
I can create each of the components as separate protects within a single VS2008 solution file and everything builds without error.
The .NET application runs without error and is able to instantiate the C++/CLI object that I have without error. The problem occurs when I call a method on the C++/CLI object which in turn instantiates a native class. I can debug the code right to the point where:
NativeObject no = new NativeObject();
is called at which point I get a 'System.Runtime.InteropServices.SEHException' occurred in .dll'
The native code works fine used within other native projects the problems only occur in this .NET environment.
For reference I'm exporting class definitions from the native DLL using this at the top of the .h file
#ifdef EXPORT_IMS_CORE_CLASS
#define IMS_CORE_CLASS_API __declspec( dllexport )
#else
#define IMS_CORE_CLASS_API __declspec( dllimport )
#pragma message( "Automatic link to IMSCore.lib (IMS::DataTypes::DataObject)" )
#pragma comment( lib, "IMSCore.lib" )
#endif
I can supply a cut down solution where the error occurs if any one wants to have a look
Thanks in advance for any help, Simon
modified on Wednesday, May 5, 2010 9:17 AM
|
|
|
|
|
I would check my trust model. You will need full trust to do this.
|
|
|
|
|
Hi
The trust settings appear to be ok
I can supply a cut down solution where the error occurs if you want to have a look
|
|
|
|
|
Please don't post the same questions here AND in QA
|
|
|
|
|
hi
i want to run an dshow an application in my project and limit it to my MDI form !
can i do it? if yes how can i?
|
|
|
|
|
I think you should write hWnd of MDI form in dshow owner device.
|
|
|
|
|
Well, I'm new to C++ and I think I'm missing something obvious. I'm trying to create a text label control on a form, but I want the actual text to be dynamic (I want to use a variable that I can change on-the-fly).
So where I'd normally have something like this:
this->labelDynamicText->Name = L"labelDynamicText";
this->labelDynamicText->Size = System::Drawing::Size(145, 34);
this->labelDynamicText->TabIndex = 5;
this->labelDynamicText->Text = L"This is some dynamic text";
I was thinking of something like this:
this->labelDynamicText->Name = L"labelDynamicText";
this->labelDynamicText->Size = System::Drawing::Size(145, 34);
this->labelDynamicText->TabIndex = 5;
this->labelDynamicText->Text = MyDynamicText;
and I'd be able to something like:
int intCount = 0
Do Until [intCount = 60]
MyDynamicText = "this text sits on the screen for a few seconds"
intCount = intCount + 1
Loop
MyDynamicText = "this text displays after 60 seconds"
So can anyone help guide me in the right direction? Can I easily do this, and where do I start? Thanks in advance!
|
|
|
|
|
Off topic: Please use <pre></pre> tags around your code (use the code block button above) rather than bolding.
On topic : Changing the contents of your MyDynamicText variable does not force it to refresh the label on your form. You also need to resend it to this->labelDynamicText->Text as was done in the initialisation. Note also that your counter will run very fast rather than taking 60 seconds, you probably need to use a timer or sleep() call.
It's time for a new signature.
|
|
|
|
|
I had developed RTSP/RTP server for mp3(audio) which is working fine.
Now I am enhanceing server for MPEG1/2 Video streaming.
In vedio streaming I need to calculate "Video RTP Packet Timestamp field"
I did'n found any proper document for Timestamp calculation.
If anybody have any idea regarding this,please reply me.
Thanks in advance.
Vijay
|
|
|
|
|
Hi,
I'm trying to write a binary file, using BinaryWriter. My code does write a file, but it is empty. This is the code I'm using:
FileStream^ fs = gcnew FileStream(Convert::ToString(fileName), FileMode::Create);
BinaryWriter^ w = gcnew BinaryWriter(fs);
int rows = fileData->GetLength(0);
int cols = fileData->GetLength(1);
try
{
for (int row = 0; row < rows; row++){
for (int col = 0; col < cols; col++){
w->Write(fileData[row,col]);
}
}
}
finally
{
w->Close();
fs->Close();
}
Does anyone have a clue why the written files is empty?
Thanks!
|
|
|
|
|
I forgot to mention that fileData is an array<String^,2>^
|
|
|
|
|
Try running it in the debugger to check that you actually have some data and that it is being written to your file.
It's time for a new signature.
|
|
|
|
|
Thanks for your answer Richard. I tried running in the debugger. I do have some data to write to the file. How can I check whether it is actually written to the file? When I check the file in Windows Explorer it stays at 0kb.
|
|
|
|
|
I don't know what is happening with your file, I just tried a similar test and the file was written correctly. All I can suggest is that you step through your program to ensure the values actually get written, and also that no other part of your program destroys the file.
It's time for a new signature.
|
|
|
|
|
That's strange. I'll try it on another computer, maybe that helps.
Thanks a lot for your help anyway!
|
|
|
|
|
Hi,
two guesses:
1. you are looking at the wrong folder; is it a relative path? is your current directory what you think it is? add a w->Write(1); early on to make sure there is some data, so the file size and modifiction date must change.
2. not sure what Convert::ToString(fileName) is supposed to do. Have a go with a simple "aha.dat"
|
|
|
|
|
Hi Luc,
I found out that something was going wrong with my fileName indeed. Its working now.
Thanks a lot for your help!
|
|
|
|
|
As I suggested yesterday, you should always run through your code with the debugger to ensure that all your variables contain the correct values. When you said the file size was zero, you did not mention that the create time had not been changed. That would have been a good clue that the file was not being written.
It's time for a new signature.
|
|
|
|
|
Well, the file was actually written, so the create time changed. It was only the referece where to write the data to that as wrong, and that I didn't catch when stepping through the code. But now it works.
Thanks again for the help!
|
|
|
|
|
I'm still learning about generics so I create a generics function like this :
generic<class T> where T : ValueType
T Process(T val)
{
val = val * 15;
return val;
}
and called float a = Process<float>(10.0) , but then I got " error C2296: '*' : illegal, left operand has type 'T' " in the line val = val * 15; . Then I try a simpler method like this :
generic<class T> where T : ValueType
T Process()
{
T val = 15;
return val;
}
Called float a = Process<float>() and I still got "error C2440: 'initializing' : cannot convert from 'int' to 'T' " in the line T val = 15;
What is the correct way to use generics?
Thanks in advance
|
|
|
|
|
Anybody?
|
|
|
|
|
The problem in your code is that you cannot convert an int to a ValueType . T is a ValueYype , so you can use only the methods defined in that class when using objects of type T .
What are you trying to achieve?
|
|
|
|
|
Thanks for your reply,
Actually I want to make a 2D matrix class that doesn't just limited in one type (ValueType) only so that I can create a Matrix<float> or Matrix<int> depending on what I need. I thought that generic is the most appropriate and also the simplest solution but it turns out that I was wrong.
|
|
|
|