|
The problem is maintaining consistency, I'm using an IFileDialog to open files on some computers, it all works as expected in win10, but on others win7 ultimate, the Open button has an arrow with a dropdown menu that adds a second option, "show previous versions".
|
|
|
|
|
Hello everybody
i have a mfc application project in Visual studio 2010. it is a GUI infact.
i want to get communication with a mini circuit signal generator device. the device has a dll file named "mcl_gen64.dll
i want to use functions of that dll in my code but i dont have any idea how to do this
any idea please?
|
|
|
|
|
What is it that you don't understand? How to code the function calls, or how to include the library in your project? What does the documentation say that came with the library?
|
|
|
|
|
i had tried this:
#import "mcl_gen.dll" in my .h file
and i have written this piece of code in my .cpp file:
"
typedef int (*ConnectByAddressfuncPtr)(short Addr);
HINSTANCE LoadME;
LoadME = LoadLibrary("mcl_gen.dll");
// Check to see if the library was loaded successfully
if (LoadME != 0)
printf("LoadMe library loaded!\n");
else
printf("LoadMe library failed to load!\n");
ConnectByAddressfuncPtr LibMainConnectByAddress;
LibMainConnectByAddress = (ConnectByAddressfuncPtr)GetProcAddress(LoadME,"ConnectByAddress");
int x = LibMainConnectByAddress(0x01);
"
"ConnectByAddress" is a function in .dll file
when i run the code although the dll file is being loaded but i get this error:
Unhandled exception at 0x770115ee in fdll.exe: 0xC0000005: Access violation.
|
|
|
|
|
Well that just indicates that you have a bad address somewhere in the code. You need to use your debugger to find out where it occurs and why.
|
|
|
|
|
you mean that i have loaded .dll file correctly and the error is because of somewhat like syntax error?
but i have exactly copied the name of function in dll.
i dont know why this error occurs
|
|
|
|
|
I have no idea why the error occurred, beyond saying that is is caused by a bad address reference somewhere. And the only way to find out where it occurred is by using the debugger. Are you certain that the parameter 0x01 that you send to the ConnectByAddress function is valid? Check the documentation to see what that function is supposed to do, and what it is supposed to return.
|
|
|
|
|
To use functions from a DLL you have two choices: Early and late binding.
Early binding:
Link your application with the DLL by using the #import directive in one file (usually a source file using functions from the DLL) specifying the file name (usually without extension or with .lib), or add the .lib file to your project settings (Linker - Input).
Include the header file and call the functions defined in that file.
Late binding:
This is only necessary if the DLL might not be present when your application is executed or you do not have a .lib file. Then use LoadLibrary and GetProcAddress like in your above example. But check both return values to be not NULL . Have a look at the header file (if present), to know how to define the function prototypes. Example:
typedef int (__stdcall *ConnectByAddressfuncPtr)(short Addr);
ConnectByAddressfuncPtr LibMainConnectByAddress = NULL;
HMODULE hLib = LoadLibrary(_T("mcl_gen.dll"));
if (hLib)
LibMainConnectByAddress = (ConnectByAddressfuncPtr)GetProcAddress(hLib,"ConnectByAddress");
if (LibMainConnectByAddress)
LibMainConnectByAddress(0x01); Note that I have initialised the function pointer with NULL and checked it before calling the function. Note also the __stdcall in the prototype declaration. It defines the calling convention used by the DLL. You have to check which is used (by inspecting the header file or asking the provider). __stdcall is common but it might be also __cdecl .
|
|
|
|
|
Hi. thank you for your answer. i dont have any .lib file
i tried your code but "LibMainConnectByAddress" still remains NULL. so the code skips
LibMainConnectByAddress(0x01);
do you know why?
thank you again
|
|
|
|
|
All I can suggest is to check if the DLL exports the function "ConnectByAddress" (e.g. using the Dependency Walker (depends.exe) Home Page[^] or executing dumpbin /exports path_to_dll on the command line; dumpbin is in the VC/bin folder) and trying it with different calling conventions like __cdecl .
I would use the Dependency Walker because it shows also the calling convention for the exported functions.
|
|
|
|
|
Member 13471493 wrote: "LibMainConnectByAddress" still remains NULL. You omitted to mention that in your reply to me. If that function pointer is null then it will cause the error you have seen. You need to check the function name that you are trying to get the address for, does it actually exist in the dll?
|
|
|
|
|
Yes it Does. i tried others functions that exist in dll too. but i got the same error. i am sure about syntax and existence of these functions in the dll.
|
|
|
|
|
But are you sure that the value you are sending to the function is correct?
|
|
|
|
|
Have you used the Dependency Walker or dumpbin meanwhile?
The exported names may be mangled (see Name mangling - Wikipedia[^] ). Then you have to pass the mangled name to GetProcAddress .
|
|
|
|
|
This article explains it. Basically you use LoadLibrary with the DLL's path given to it. The rest is mapping the functions you will need to call.
- Michael Haephrati מיכאל האפרתי
|
|
|
|
|
Hi,
i have created a sample ATL application in VS2010, added ATL Simple object.
it has only one method
int getVal()
{
return 10;
}
i have enabled /clr switch in the project properties and build in release mode. (i have added /clr because i want to consume some objects build in C#.net)
after registering the dll, i have consumed the COM object in vbscript. (the code below)
dim obj
set obj = createobject("MySample.COMSample")
msgbox obj.getVal()
set obj = nothing
this is very simple COM object. if i run the above script, it will show message box "10".
once i press ok, there is an popup with an exception message below.
---------------------------
WScript.exe - Application Error
---------------------------
The exception unknown software exception (0xc0020001) occurred in the application at location 0x7c812aeb.
Click on OK to terminate the program
---------------------------
OK
---------------------------
if i remove /clr switch and build it run the Vbscirpt. i don't see the popup error.
any suggestion why there an exception when /clr switch is used ?
Thanks in advance.
modified 23-Aug-17 6:26am.
|
|
|
|
|
I m using VC++ VS2008 compact edition. I hv problem that
when I m using
GetUsbDriveLetter(CString)
at compiled time error occurred not defined because it is in Quote: winbase.h sdk function. And CE7 hv different sdk therefore it occurred. please suggest me how to get USB letter in CE7
YogeshJadhav
|
|
|
|
|
I cannot find that function in the latest version of winbase.h, and MSDN does not seem to have heard of it. What version of the SDK do you have that includes it?
|
|
|
|
|
actual error is
Error 294 error C3861: 'GetLogicalDriveStrings': identifier not found
and using Toradex_CE700 platform using VC++
Microsoft Visual Studio 2008
Version 9.0.30729.1 SP
Microsoft .NET Framework
Version 3.5 SP1
Installed Edition: Professional
Microsoft Visual C++ 2008 91605-130-0752752-60490
Microsoft Visual C++ 2008
Crystal Reports AAJ60-G0MSA4K-68000CF
Crystal Reports Basic for Visual Studio 2008
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB2483802) KB2483802
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB944899) KB944899
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB945282) KB945282
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB946040) KB946040
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB946308) KB946308
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB946344) KB946344
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB946581) KB946581
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB947171) KB947171
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB947173) KB947173
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB947180) KB947180
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB947540) KB947540
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB947789) KB947789
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB948127) KB948127
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Hotfix for Microsoft Visual Studio 2008 Professional Edition - ENU (KB953256) KB953256
This hotfix is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this hotfix will be uninstalled automatically.
For more information, visit http:
Microsoft Visual Studio 2008 Professional Edition - ENU Service Pack 1 (KB945140) KB945140
This service pack is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this service pack will be uninstalled automatically.
For more information, visit http:
Microsoft Visual Studio 2008 Professional Edition - ENU Service Pack 1 (KB947888) KB947888
This service pack is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this service pack will be uninstalled automatically.
For more information, visit http:
Update for Microsoft Visual Studio 2008 Professional Edition - ENU (KB956453) KB956453
This update is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this update will be uninstalled automatically.
For more information, visit http:
Update for Microsoft Visual Studio 2008 Professional Edition - ENU (KB967143) KB967143
This update is for Microsoft Visual Studio 2008 Professional Edition - ENU.
If you later install a more recent service pack, this update will be uninstalled automatically.
For more information, visit http:
|
|
|
|
|
|
yes, then any function to get usb drive letter in Windows CE 700 api
|
|
|
|
|
See my other reply below; it seems that Windows CE does not use drive letters.
|
|
|
|
|
|
Hello, I am newbie to C++ and therefore I found the following example and working with it.
A Beginner Tutorial for Writing Simple COM/ATL DLL For VS2012
I like to know how to use this example COM object in VB Script, I like to do it using CreateObject Method.
If it currently doesn't support VB Script, how can I add VB Script support to this DLL?
Thanks for your help.
|
|
|
|
|