GPIB in QT
-
Qt is a library. It has nothing at all to do with whether your compiler tool chain can link to another library of any sort.
From the "driver readme":http://download.ni.com/support/softlib//gpib/Windows/3.1.1/ReadMe.html:
The following table lists the programming languages and Microsoft Visual Studio versions supported by NI-488.2.
Programming Language Visual Studio Versions Supported by NI-488.2
Unmanaged C/C++ 6.0[1][2], 2003[2], 2005, 2008, 2010, and 2012It would seem that you should no issue with any MSVC compiler/linker
-
Thanks. I have some question about you mentioned, Is MSVC compiler different with Unmanaged C/C++6.0, 2003.. etc, I have no idea into MSVC compiler, does it work on QT only !?Actually, I found some information yesterday in the following link:
But I can't do same thing as this forum said, I didn't know some tool I could find somewhere. It's a big challenge for me in my work.
-
MSVC = Microsoft Visual C++, the compiler included in most versions of the Windows SDK and Visual Studio. If you have Visual Studio for .Net work then chances are you have Microsoft's C++ compiler already (i.e. CL.exe). The compiler is not part of Qt.
Unmanaged code means "not .Net" code. There should be a matching set of include files, *.lib file(s), and *.dll file(s) provided by the manufacturer.
If you are using MSVC as your compiler then you should have nothing special to do to use the supplied library files with your application.
If you are using MinGW as your C++ compiler and the manufacturer library has C-style bindings (seems to be the case) then you should have nothing special to do use it with this tool chain.
-
My compiler is MSCV, Microsoft Visual C++ Compiler 9.0(x86).The .dll comes from the manufacturer is built by .net.I can get them from their website, so they are matched, right? If they are matched. how could I use them in QT ?? I knew method of using "QLibrary", but I want is a whole class in the .dll, not function.By the way, total functions I need are included in class, so I should using the class, aren't !? Thanks for your answer in advance.
-
No, the managed .dll can not be accessed by native C++ code directly!
--
BTW,If you really want to call managed .dll from native c++ code in the furture, you can ref: http://support.microsoft.com/kb/828736
-
Is native C++ code as same as unmanaged code !?
-
Yes, native code is compiled to work directly with the OS, which is not managed by the CLR (Common Language Runtime).
-
http://en.wikipedia.org/wiki/Managed_code
Look above link, C++ also can be manage code, so C++ can be managed code(C++ in .net) and unmanaged code(Native C++), right !? It depends on which environment developer to use. -
[quote author="Ivan1120" date="1374561273"]http://en.wikipedia.org/wiki/Managed_code
Look above link, C++ also can be manage code, so C++ can be managed code(C++ in .net) and unmanaged code(Native C++), right !? It depends on which environment developer to use. [/quote]Yes, it is depending the options you passed to the msvc c++ compiler. take a simple c++ application for example:
@
#include <iostream>int main()
{
std::cout<<"Hello From MSVC"<<std::endl;
return 0;
}
@It can be compiled as native code
@
cl a.cpp
@or compiled as managed code
@
cl /clr a.cpp
@But in Qt world, only native C++ code make sense at present.
BTW, you should use the native c/c++ api provided by your device manipulater
-
I have one more question, I tried the direction you gave me from below link:
http://support.microsoft.com/kb/828736
In the article, the step 9 of "Call the Managed DLL from Native C++ Code",
@// Initialize COM.
HRESULT hr = CoInitialize(NULL);// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));long lResult = 0;
// Call the Add method.
pICalc->Add(5, 10, &lResult);wprintf(L"The result is %d", lResult);
// Uninitialize COM.
CoUninitialize();
return 0;@
What is "ICalculatorPtr"?? The .dll I built from above link, ICalculator is interface, my question is if I want to use .dll from device manufacturer provided, their .dll file should be written from interface ?? -
Does anybody know!?
-
-
Thanks, my code can work well.But I want to know what is “ICalculatorPtr”, I didn't see any definition of it. Because if I use this method in the future, this would be a important issue. Thanks in advance.
-
I've never seen it myself, sorry. Try asking at a Microsoft forum, since it's from Microsoft API.
-
Thank you:)). If I can't get answer here, maybe I'll go to ask in Microsoft forum.Does any body know what is “ICalculatorPtr” and how does it generate??
-
[quote author="Ivan1120" date="1374589946"]Thanks, my code can work well.But I want to know what is “ICalculatorPtr”, I didn't see any definition of it. Because if I use this method in the future, this would be a important issue. Thanks in advance.[/quote]
It's a typedef of smart pointer _com_ptr_t
http://msdn.microsoft.com/en-us/library/8etzzkb6(v=vs.71).aspx
-
Thanks:)), Something I'm confused still, according to released document from Microsoft , if I want to use .dll file with managed code in native c++ environment, like "QT", does class in the .dll should be designed to inherit "Interface"?? like following link.
-
Hi, everyone. Does anybody know above question!?
-
[quote author="Ivan1120" date="1374801537"]Hi, everyone. Does anybody know above question!?[/quote]This is a Qt forum, so not everyone here has experience with the .NET framework (some people here don't even use Windows). Try asking at a Microsoft forum.
-
I see, thank you.