|
Hi everybody,
I'd like to make a little application to handle 3rd party gauges. These are basically C/C++ dlls, so it seems that I have to find out their entry points and members first. One major thing would be to simply show the bitmaps, which they provide for the GUI in the game (MSFS), inside my application.
Does anyone know a way how to do something like retrieving member and resource information from an unknown dll in VB.NET (or C#)?
Thank you
Michael
|
|
|
|
|
|
Thank you, I'll go google for these tools.
|
|
|
|
|
|
This seems to be a really cool tool for the initiated ... giving me what I asked for and showing me how far I am from "making a little application" with display support.
At least the dlls in question obviously don't expose any bitmaps, but only "ImportTable" and "Linkage" functions which both belong to a world of C-language and the 7 seals...
Thank you still!
|
|
|
|
|
Hi Friends,
I wanted to convert excel sheet data to xml using VBA.
Kindly help me.
Thanks in advance.
Regards,
Priya.
|
|
|
|
|
A quick search found this article clickety[^]
|
|
|
|
|
Hi,
I have this table
Accessories table
(ID, description, date, ArmoryID, ProfileID)
with these records:
1 belt 05/01/2010 1 1
2 hoslter 05/02/2010 2 1
3 charger 05/03/2010 3 1
I need to take the most recent record for profile 1
to have as result: (3 charger 05/03/2010 2 1)
I tried a number of querries, can't seem to get the right answer.
Please guide me through it..
Thanks a lot..
|
|
|
|
|
Select count(*) from Accessories, the result is 3, then select * from Accessories where ID = result
|
|
|
|
|
Hi
thanks, but we will not know what the result is..
One profiler can have more than one accessories as of in history archive.
but to check to see if a profiler has an accessorie, it should load based on the most recent date since we can have more than one accessories entries for one profiler.
Hope a bit clearer now.
thanks a lot
|
|
|
|
|
SELECT * FROM Accessories ORDER BY date DESC; , then use the first returned record.
By the way, using "date" for a column name is a very bad idea, since it is a reserved word for a data type in most SQL dialects. I always use "order_date" or some other variation to make sure the SQL engine doesn't think you are using a reserved word. Sooner or later that problem will bite you.
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
modified on Monday, July 5, 2010 5:24 PM
|
|
|
|
|
Hi,
Thanks.
I have used a variation for date..again thaks for the info..
I thought of doing it this way..wasn't sure if it was the right approaoch..
thanks..
|
|
|
|
|
Instead of returning the entire ordered set, how about returning SELECT TOP 1 ... ORDER BY date DESC instead?
|
|
|
|
|
Yes, you're right. When I need to do that, I usually end up needing more info, so I usually just get the whole set, but if he really needs just 1 and only 1, selecting TOP 1 is the way to go.
CQ de W5ALT
Walt Fair, Jr., P. E.
Comport Computing
Specializing in Technical Engineering Software
|
|
|
|
|
Question: Is it possible to have two (or more) entries with the same date?
If so, then sorting on date descending and selecting first one (e.g. by using top) is not guaranteed to get you the most recent entry.
If the ID field is autogenerated then perhaps the max of that is a better candidate?
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Hi,
the answer to your question is YES.
But not good in setting up candidate..in my case can u walk me through it so I can adapt myself..
Thanks.
|
|
|
|
|
I have an MDI Application that I am developing using Visual Basic 2008
One of the forms that the application calls in inside a DLL. This works great
Imports articleSearch
Dim frm As New DocumentSearch("Broker", Me)
frm.MdiParent = Me
frm.Show()
My problem is that form spawn another form from the DLL depending on the user action i.e. documents to view.
For Each dgRow As DataGridViewRow In DataGridView1.SelectedRows
'MessageBox.Show(dgRow.Cells(3).Value)
Dim frm As New PDFViewer(Trim(dgRow.Cells(3).Value))
frm.MdiParent = _CallingApp
frm.Show()
Next
now if i use the frm.mdiparent = _CallingApp (where _callingApp is a reference to the form being called) then the form display is blank but if i omit that line it works as expected, but it is no longer a child window of the mdi app
any pointers?
Thanks
Simon
As barmey as a sack of badgers
|
|
|
|
|
Simon_Whale wrote: where _callingApp is a reference to the form being called
What do you mean with the 'form being called'?
I would either put a reference to the MDI form in a class and use that one.
Or just use me.parentform instead of _CallingApp
|
|
|
|
|
Sorry Tom,
In my App I have the main exe and a DLL.
In the DLL I have 2 forms a document search form and a PDF viewer.
each of these forms are called by the main App (MDI parent)
I can call the document search and that works ok, but then the user clicks on docs to view and click on the view selected button. But I want to get the PDF viewer as a page in the MDI Application, if I set the parent no document shows (just a blank screen). If i ignore the mdiparent setting it works as expected but the user gets 1 to many pdf's open.
My question is how can I get the PDF viewer screen to show up inside the MDI Application only.
As barmey as a sack of badgers
|
|
|
|
|
To get it to open inside the mdi application you have to set the mdiparent of the form.
So either the _CallingApp reference is wrong (not a reference to the mdi parent form or something in your pdf viewer is going wrong when called into a mdi container.
|
|
|
|
|
Hi all,
one of the tasks in my application is copying several thousand large picture files (12 MB). In order to make this perform to the maximum I tried to parallelize the copy process using the ThreadPool, so that every file is copied in a new thread if available. The idea behind was that, on the target system - which is equipped with several RAIDs - this might result in a remarkable performance gain.
On my development computer I have only 2 harddisks and also don't have the necessary amount of files available, so I simulated the copy process by using a dummy (thread.sleep(200) instead of copy). This worked fine, and it seemed like hundreds of files would copy within seconds while using up to 9 threads. On the other hand, a final test on my development system, without the dummy but with much lesser files, didn't result in any performance gain at all.
Since I don't have a lot of experience there's the doubt arising if the basic approach is correct and worth following, so that - before implementing everything on the target system - I wish to get some more experienced advice on that. Does this concept make sense at all so that it would be worth the effort, or am I on a wrong track? Btw I have to stay with .NET2.0 and can't use any of the VS2010 parallelism options... and I'm working with the VS2008 Express Version only.
Thanks for some guiding thoughts
Michael
|
|
|
|
|
Off the top of my head I'm not sure having so many threads buys you anything - unless you have several thousand processors each running one of them.
It looks to me that the main bottle neck will be the I/O performance rather than the CPU. So many threads is not likely to help.
Furthermore, each thread will come at a cost - there's the creation but also the cost of switching when a thread's time slice expires.
However, this is guesswork and there's no substitute for performance testing.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Hi David,
thanks for your opinion. The target system with the RAIDs is supposed to process up to 25 frames per second in HD (it's movie related, i.e. so a HD frame is a picture of 2048*1536) while Windows Explorer seems to copy only around 5 frames per second. That's why I thought triggering several parallel copy processes by several asynchonous threads could be "it" - my goal is to fully exploit the given I/O performance for the copy process.
Do you probably have another idea how I could reach that goal?
Thanks
Michael
|
|
|
|
|
Not really something I've dealt with but here's some thoughts.
Have you tried just having a loop that uses File.Copy - this is likely to be quicker than Explorer copying.
Would using XCopy from the shell do the job?
Would using CopyFileEx in the Win32 API improve things - I've found that sometimes using the Win32 API has improved performance.
Multiple threads may be faster but I don't think one per file would help. Especially if there is a large number of files. Only one thread per processor can be running at any time. So you just end up with a large queue of threads - that costs in terms of thread scheduling.
There's more than one level of RAID - some of them don't improve IO performance. What level is actually implemented? It may be that the disk controller proves to be a bottleneck.
When performance has been an issue I've found the only sure way to improve it is by profiling the app - guesses as to where the delays are often turn out wrong.
Regards
David R
---------------------------------------------------------------
"Every program eventually becomes rococo, and then rubble." - Alan Perlis
The only valid measurement of code quality: WTFs/minute.
|
|
|
|
|
Michael,
This is quite a good article on Toms Hardware, addressing network copy operations; http://www.tomshardware.com/reviews/gigabit-ethernet-bandwidth,2321.html[^]
If you are going to be doing this large volume transfer regularly, i think the first thing to do would be to improve your network infrastructure in attempt to get upto the theoretical limits of the interconnect. e.g. do both ends and any switches in between support jumbo frames etc.
I use RDII Disk Benchmark 2 by Ives Heymans, using unbuffered IO to test my PC to QNAP TS509 Pro Raid Box. search the net for it, it is free software. The software uses varying block sizes, and allows you to try varying things to get a consistent test.
You will also want to make sure that your hard disks are defrag'd, so the read head is not have jump around all over the place and is reading from a contiguous block.
Reading the Toms hardware article, you will see they maximised the io by transferring from Ram to Ram over the network. You may want to look at using 1 thread to transfer files into a ram disk, and the other thread to move from the ram disk out to the network, this is keeping all your subsystems occupied, but without sharing on the slowest part, the hard disk.
|
|
|
|