|
Why are you trying to cast a reference type of MyAudio to MyAudio.
That is in effect saying "This green cup is green"(Absolutely Pointless).
Or is there some specific reason it needs to be there.
If it doesn't that might be your problem.
|
|
|
|
|
If you see the definition of FromUrl:
public static Microsoft.DirectX.AudioVideoPlayback.Audio FromUrl ( System.String address , System.Boolean autorun )
it returns a Microsoft.DirectX.AudioVideoPlayback.Audio object. So if I don't typecast it to MyAudio, it gives a compilation error.
Paul
|
|
|
|
|
In this function:
public static Microsoft.DirectX.AudioVideoPlayback.Audio FromUrl ( System.String address , System.Boolean autorun )
the signature states it returns an instance of the "Audio" class. You can't convert "Audio" to "MyAudio" because "Audio" doesn't derive from "MyAudio" (the reverse is true). If the function returned a "MyAudio", you could convert it to "Audio", but the other way around would never work.
If I understand what you're trying to do, you should consider creating a constructor for your "MyAudio" class that takes an "Audio" instance as a parameter.
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins
|
|
|
|
|
IMO not providing an external accessible contructor , the class should be sealed, the only option is to encapsulate as .NET doesnt allow you to cast from the base type of a derived class.
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Another alternative would be to implement an explicit cast operator in the MyAudio class. See "explicit keyword" in your VS.NET help for details.
Essentially, the CLR will use this explicit cast operator to cast from Audio to MyAudio but in the implementation of the cast operator, you'll have to take care of the details.
[edit]
Nevermind. I forgot and was quickly reminded that casting to/from a base class (or for that matter, casting to/from derived class) isn't allowed and throws a compiler error.
[/edit]
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Sweet...
I've been doing C# for over two years now, and I don't remember seeing that keyword before . I immediately looked up "implicit keyword" and was happy with what I found there as well.
Both implicit and explicit keywords are pretty cool.
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins
|
|
|
|
|
Exactly what I mention is not possible at all!
Compiler Error CS0553'conversion routine' : user defined conversion to/from base class
User-defined conversions to values of a base class are not allowed; you do not need such an operator.
The following sample generates CS0553:
namespace x
{
public class ii
{
}
public class a : ii
{
public static implicit operator ii(a aa)
{
return new ii();
}
public static void Main(){}
}
}
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
That error happens in a very few cases, I myself have only bumped into it once. There is NO way around it, unless you encapsulate the class, like a BufferedStream eg.
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
Can u give an example of what u mean by 'creating a constructor for your "MyAudio" class that takes an "Audio" instance as a parameter.'
How would I specify the file and how would i get the instance of Audio ?
|
|
|
|
|
My original advice isn't necessarily the best way to do it. I think I understand a little better now what you're trying to do.
I'm having a hard time figuring out exactly what you're doing, but I might be able to help a bit.
First, the most important thing for you to realize is why what you tried doesn't work. The FromUrl method is a static function that returns an instance of DirectX's Audio class. This type of function is sometimes called a "factory". It's creating a new instance of the Audio class. It's similar to a constructor, but you're not using the "new" operator to create a new instance. Audio is a base class of MyAudio. So an Audio instance can never be converted to a MyAudio (only the reverse can be done).
Now, from what I can tell, you created the "MyAudio" class to simply store a string that's the original file (is this correct?). Since you're dealing with static factory method's that you still want to use and they're not virtual (so you can't override them), my opinion to you would be don't derive from Audio, but contain an Audio instead. The limitation of this is you can't pass around a MyAudio instance anywhere you normally could pass an Audio instance, but it's still not too hard to make it easy to use. For instance, consider this:
public MyAudio
{
public MyAudio(string url, bool autoPlay)
{
audio = Audio.FromUrl(url, autoPlay);
file = "???";
}
public Audio
{
get
{
return audio;
}
}
private Audio audio;
private string file;
}
Then you could write code like:
MyAudio ma = new MyAudio(url, autoPlay);
and whenever you needed to do something you'd normally do with Audio, you could just call
ma.Audio
and have access to the contained DirectX Audio instance.
Does any of that help?
I, for one, do not think the problem was that the band was down. I think that the problem may have been that there was a Stonehenge monument on the stage that was in danger of being crushed by a dwarf.
-David St. Hubbins
|
|
|
|
|
That worked, thankyou so much.
There is some data that I need to save with the MyAudio object. That's why I cannot directly use the Audio object.
Thanks,
Paul
|
|
|
|
|
I have a dataGrid and my reqirements is that i want to add data in the dataGrid form two tables.Both the tables are in the dataset.
How can i display data in the datagrid programatically.I think the
dataGrid.setDataBounding(ds,"Item")
would not work since it binds it to only one table.
Is there unbound method so that i can display data form two table in a single data grid.
Note that i dont want to use the DataRelation obj .
Any Idea.
Thanks
|
|
|
|
|
datagrid.DataSource = dataset;
Just bound iyt to whole of dataset,not to one table.
Mazy
No sig. available now.
|
|
|
|
|
This will require a value for the DataGrid.DataMember property since DataSet is an IListSource implementation. If you don't, you'll see a DataGrid with two collapsable (in the collapsed state) rows for each table. It won't give you a "flat" look, and most likely both tables will have different columns anyway.
A couple of other alternatives might be to merge the two tables together if you don't need to update an RDBMS with the changes to the DataSet . You could also used a couple of DataGridTableStyle s (see the DataGrid.TableStyles property for more information) to control the output of each table depending on the table name, although this won't show them simultaneously. You can programmatically switch from one table style to another hence showing both tables formatted how you want them.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I've got a rather odd problem which I can't fix, and can't find any information about on the Microsoft sites, so maybe some saged person here can help.
In summary, I am referencing a home grown .DLL in my project. The .DLL is relatively simple, it just accesses some legacy BTree files. However with the reference in place, loading up one of the existing forms in the project the form doesn't load - in it's place is a screen saying:
An error occurred while loading the document. Fix the error, and then try loading the document again. The error message follows:<br />
File or assembly name EPoSAccessLayer.dll, or one of it's dependencies, was not found.
I have confirmed that all dependencies are found, and in a brand new project the .DLL does not cause these problems.
In the existing project where this reference is causing the form problems, the application will compile and execute without errors. I just can't edit the forms.
My current workaround is to remove the reference, and then the forms load up and are OK for editing. So the question is, has anyone else experienced this problem, and if so, do you know the solution for it.
Thanks.
Martin.
|
|
|
|
|
Sometimes I found those error too,
What I did.. just try saving the form.. restart the IDE and reopen again.
Mostly it's work..
Sorry I can't help you with other solution
"Courage choose who will follow, Fate choose who will lead" - Lord Gunner, Septerra Core
"Press any key to continue, where's the ANY key ?" - Homer Simpsons
Drinking gives me amazing powers of insight. I can solve all the worlds problems when drunk, but can never remember the solutions in the morning. - Michael P Butler to Paul Watson on 12/08/03
|
|
|
|
|
If the assembly EPoSAccessLayer.dll is from a project in your solution, I recommend you add a Project reference to your project that depends on it (same as adding a .NET or COM reference, only click on the Project tab). This keeps both Debug, Release, or any other build configurations in sync when building. It also makes sure that any changes to the EPoSAccessLayer project force a recompilation of it before compiling your project with a dependency on it. If you're using automatic versioning, this problem seems common and using a project reference should help.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
I wasn't orginally using a project reference, just a normal binary reference. But that does seem to have fixed it.
Thanks.
|
|
|
|
|
This problem occurs also when you are using inherited forms. Forms inherited from forms in your own project usually don't cause much trouble. But I have never been able to inherit a form from another (library) project... the program worked just fine - like yours - but the designer wouldn't work...
A bug in VS.NET ...
Anybody knowing how to fix this inheriting problem??
greetz
*Niels Penneman*
Software/Dev Site Personal Site
|
|
|
|
|
I can't seem to figure this out.
I need to dispose the audio after it has finished playing(using DirectX).
ourAudio = new Audio(fileName);
if (ourAudio != null)
ourAudio.Play();
<- NEED SOMTHING HERE (Wait function or Thread...)
ourAudio.Dispose();
Thanks
Thomas
|
|
|
|
|
Handle the Audio.Stopping event. In the handler, you could call ourAudio.Dispose , or to use the handler for multiple Audio.Stopping events, cast the sender parameter (could be any name, but it's the first parameter in the handler) to an Audio Type and call Dispose :
private void PlaySound(string fileName)
{
ourAudio = new Audio(fileName);
ourAudio.Stopping += new EventHandler(audio_Stopping);
ourAudio.Play();
}
private void audio_Stopping(object sender, EventArgs e)
{
Audio a = sender as Audio;
if (a != null) a.Dispose();
}
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Hi,
I have to develop a client/server application in C#. The connection between the server and the client hast to be persistent and encrypted. There will be steady dataflow on push basis from the server.
My question is, what is the best approach to build this kind of application? Speed is one of the most important factors.
I read an article about Bear Stearns who built their new stock market transaction server as XML web service.
So, if anybody has some gnereal ideas i'd greatly appreciate that
|
|
|
|
|
I suggest to read about Remoting. I just finished a client/server application using remoting and it works very good.
You can persist and encrypt using Remoting.
Search in CP about remoting.
Visit www.ingorammer.com[^]
Free your mind...
|
|
|
|
|
I did but to me it looked more like remoting is used to offload processing to another computer.
What I want are persistent connections for a couple hundred clients, constantly pushing or pulling data.
So, this will be very performance critical.
What are the other possibilities to approach this type of application?
However, I'll have a deeper look at remoting and see whether it suits my needs
|
|
|
|
|
Try webservices, but webservices will work for pulling data, as you know it works using a web server, and the web server can't send information to the clients, unless the client ask for the information.
I used remoting to push and pull info from the server and the clients.
Free your mind...
|
|
|
|