MFC Extension DLL or MFC DLL with "Automation"

I've been planning a project for quite some time now that uses MFC code and is heavily object oriented. A couple MFC applications run on top of the dll formed platform and draw on various functional objects stored in a DLL. For the time being, I've been
struggling to get them to link together, so I was wondering what kind of DLL I should use.
Both Extension DLL's and the feature automation have their merits. But when the Extension DLL is selected, the Automation option is greyed out. What exactly is the difference and which one would be better to use.
Until such a time I attempt to port the project over to another platform, I don't intend to use non-MFC software run on top of these libraries so non-MFC shouldn't be an issue.

If you want to build automation components, you'll want to use a regular DLL.
The following help topics might help clarify:
Extension DLLs
Using Database, OLE, and Socket Extension DLL's in Regular DLLs
Think of it this way. An extension DLL extends MFC, so can only be utilized by an MFC based application.But a COM DLL is a stand alone component, that can be utilized by non-MFC applications, which by definition precludes them from being extension
DLL's.
Sincerely,
Ed Dore

Similar Messages

  • Debbugging MFC DLL with TestStand.

    I am in the process of evaluating TestStand and am very impressed with the tool. I created an MFC DLL with my existing C++ test code and have succesfully executed it through Teststand using the flexible prototype adapter. What seems to be missing is the ability to debug the DLL in Visual studio. I'm not sure if I need to have Visual Studio reference TestStand for DLL testing or visa versa. Please advise, as this is the last item I need to confirm prior to purchase. Is this a feature on version 2.0 ?? Thanks in advance.

    Mark-
    You can debug DLLs from TestStand that were created as debuggable DLLS in their original ADE by launching the TestStand Sequence Editor (\TestStand\Bin\SeqEdit.exe) from within your DLL's ADE. In your case you would run the SeqEdit.exe as an external process from within the Visual C++ development environment.
    Here is the description of how to do this from pg 12-12 in the TestStand User Manual that should already be installed on your computer under Start>>Programs>>National Instruments TestStand>>Online Help
    "To debug a DLL, create the DLL with debugging enabled in
    LabWindows/CVI or in another ADE. To debug DLLs, you must launch
    the sequence editor or run-time operator interface from LabWindows/CVI
    or the other ADE. In LabWindows/CVI, you use the Select
    External
    Process command in the Run menu of the Project window to identify the
    executable for the sequence editor or run-time operator interface. You then
    use the Run command to start the executable.
    If you select the Step Into command in TestStand while execution is
    currently suspended on a step that calls into a LabWindows/CVI DLL that
    you are debugging, LabWindows/CVI breaks at the first statement in the
    DLL function."
    Hope this helps!
    Regards,
    Richard McDonell
    National Instruments

  • FIM 2010 Sync not running with status "Stopped-extension-dll-exception"

    we are getting the following error for all our extensions when trying to run the Sync Operations. All extensions have similar errors with event ID 6159 generated in the application event log. They all started occurring after I deleted a attribute flow
    rule in one of the agents. This is happening in Production and are facing lot of other issues because of this.
    The management agent "Peoplesoft" failed on run profile "Full Import Full Synch" because of a problem with the initialize method on the extension object. The extension dll is "PeoplesoftExtension.dll" and the stack trace is:
    Microsoft.MetadirectoryServices.UnexpectedDataException: String or binary data would be truncated.
    The statement has been terminated.
       at Mms_ManagementAgent_PeoplesoftExtension.ExtFunctions.RunSQLCommand(String commandstring)
       at Mms_ManagementAgent_PeoplesoftExtension.ExtFunctions.AddSentEmailsRecord(String sAMAccountName, String MessageSubject, String MessageBody, Int16 DelayDays)
       at Mms_ManagementAgent_PeoplesoftExtension.ExtFunctions.CheckDoNotDisableInactiveGroup()
       at Mms_ManagementAgent_PeoplesoftExtension.ExtFunctions.LoadConfigSettings()
       at Mms_ManagementAgent_PeoplesoftExtension.ExtFunctions.InitializeCommon()
       at Mms_ManagementAgent_PeoplesoftExtension.MAExtensionObject.Initialize()
    Please advise on how to fix this as I have no clue where to start and am new to FIM.
    Only Full Import(Staging ONLY) is successful.

    The error message you are getting is talking about data getting truncated. Any change that you had a data change alongside your other changes and now the length of data in one or more of your attributes is longer than it was?
    I suspect that since you are new to FIM, something else has changed that you don't realize (beyond just the deletion of the one sync rule), but...
    If truly the only thing that changed was a deletion of a flow rule, is there any chance that either of the following could have happened:
    With the deletion of a flow rule the corresponding data is no longer going through the sync engine. Could there be some logic that due to precedence, is now using a different value, and this different value is too long for some other piece of logic.
    With the deletion of a flow rule the corresponding data is no longer going through the sync engine. With this value missing, some extension logic is making a different choice and generating invalid data. Without the deleted data flow, there may be a null
    value that extension logic is not properly dealing with.
    As was suggested, the best thing to do may be to restore from backup and get the system back to a known state.
    If you have development skills and if you have the source code to your custom rules extensions, it is fairly easy to debug and single step through the code. This of course must be done with extreme caution if you are in a production environment. You will
    also need familiarity with how the FIM Synchronization engine works. Documentation is here:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms698774

  • Error R6034 in simple MFC Application with OCCI

    Hello everyone,
    I´m new to the whole occi-topic, and have a little problem.
    After about 3 days of try and error and endless searching through forums I finally managed to make my first application with occi to run. It´s a Win32 console application.
    After a little "celebration" I startet to create a MFC application with the same base functions.
    If I compile the project, I get an error "R6034" when the compiler tries to access the file: "msvcp80d.dll". I think it has something to do with the manifests.
    Here is the output.
    "DBTest_MFC.exe": "D:\fh\proggen\DBTest_MFC\debug\DBTest_MFC.exe" geladen, Symbole wurden geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\ntdll.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\kernel32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "D:\fh\proggen\DBTest_MFC\DBTest_MFC\oraocci10.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "D:\oracle\product\10.2.0\client_1\BIN\oci.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\msvcr71.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "D:\fh\proggen\DBTest_MFC\DBTest_MFC\msvcr80.dll" geladen, Symbole wurden geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\msvcrt.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "D:\fh\proggen\DBTest_MFC\DBTest_MFC\msvcp80.dll" geladen, Symbole wurden geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugMFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_c8452471\mfc80d.dll" geladen, Symbole wurden geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll" geladen, Symbole wurden geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\gdi32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\user32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\shlwapi.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\advapi32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\rpcrt4.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\secur32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\comctl32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\oleaut32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\system32\ole32.dll" geladen, Keine Symbole geladen.
    "DBTest_MFC.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcp80d.dll" geladen, Symbole wurden geladen.
    Eine Ausnahme (erste Chance) bei 0x7c91eae0 in DBTest_MFC.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000130.
    R6034
    An application has made an attempt to load the C runtime library incorrectly.
    Please contact the application's support team for more information.
    Windows hat einen Haltepunkt in DBTest_MFC.exe ausgelöst.
    Dies kann auf eine Beschädigung des Heaps zurückzuführen sein und weist auf ein Problem in DBTest_MFC.exe oder in einer der geladenen DLLs hin.
    Weitere Analyseinformationen finden Sie möglicherweise im Ausgabefenster.
    Is anyone familiar with this problem an perhaps able to help me?
    I already tried some "workarounds" and played with the manifests, but had no success.

    I assume you have the manifest tool (mt) somewhere on your system - I just open a "Visual Studio Command Prompt" when I have to use with it.
    Something you can try (I'm not certain it will resolve your issue though):
    1. Open a Visual Studio Command Prompt and change directories to %ORACLE_HOME%\OCI\lib\MSVC\vc8
    2. Copy the existing dll files to save them:
    copy oraocci10.dll oraocci10.dll.orig
    copy oraocci10d.dll oraocci10d.dll.orig
    3. Use the mt tool to embed the provided manifest files (you should already have these files in the directory):
    mt -manifest oraocci10.dll.manifest -outputresource:oraocci10.dll;2
    mt -manifest oraocci10d.dll.manifest -outputresource:oraocci10d.dll;2
    NOTE: This is not an Oracle-specific procedure. The manifest tool is used by Visual Studio itself when building projects.
    4. Depending on how you have your system configured, copy the oraocci10(d).dll files to a backup copy as before in whatever directories you have them and then copy the "new" files with the embedded manifest to those locations.
    For example, on my development machine, I have copied the files to %ORACLE_HOME%\bin so that I do not have to include %ORACLE_HOME%\OCI\lib\MSVC\vc8 in my path.
    Let us know if that helps or not!
    - Mark

  • Error while running User Profile Import - Stopped-extension-dll-load

    Hi guys,
    I'm receiving below error message in event viewer while running user profile import for the first time with event ID 6166:
    The management agent "MOSS-" failed on run profile "MOSS_EXPORT_". The run step stopped because a configured extension for this management agent could not be loaded.
    User Action
    Verify that the extension is located in the Extensions directory. If the extension is present, confirm that the version of the .NET framework  that can run the extension is installed on the server and that a supportedRuntimes  entry in the configuration
    files specifies that version. The synchronization  engine will not be able to load an extension that is built with a newer version  of the .NET framework than the version of the .NET runtime it is hosting.
    At the same time , in miisclient "stopped-extension-dll-load" message for MOSS_EXPORT,MOSS_FULLSYNC, MOSS_DELTASYNC. Can any help to let me understand what will be causing this issue?
     Farm version: 14.0.6137.5000

    Hi Sarath,
    For this issue, I recommend verify the things below:
    Check if the connection name of the Synchronization Connections created in User Profile Service Application has more than 55 characters. If yes, please rename the connection with less than or equal to 55 characters.
    Check if the length of the full path to the dll called “Microsoft.Office.Server.UserProfiles.ManagementAgent” is
     greater than 160. If yes, then we can move the extension Microsoft.Office.Server.UserProfiles.ManagementAgent.dll to the folder c:\windows\assembly\GAC_MSIL and then do an IISRESET.
    If above cannot work, please check ULS log for more detailed error message.
    Best regards,
    Victoria Xia
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • How to save tdm file from GPI extension DLL

    Hi,
    Is there any way to save data channels to tdm file format from GPI extension dll.
    I've tried lDataSave function, but I get DAT file format.
    I've also tried using Diadem.TOCommand interface, It'works with CmdExecuteASync method, but not with CmdExecuteSync (I've thought using a new thread with CmdExecuteASync, but what about synchronization ?).
    As I need to run a process like, do something, save tdm file, then do another thing, I'm a little lost.
    Thanks for any suggestion.
    JMA.

    Hello!
    First: I have no solution!
    Second: Some remarks to using a OLE interface to DIAdem in GPI.
    My experience is that there are only few situations and circumstances where it might be the only way to solve a problem. There are some critical things to know. If you create a ToCommand interface it isn't guaranteed that you get an interface to the proccess you are running in. In normal cases it will be but you can't be sure! CmdExecuteSync doesn't work because usually your command is initiated out of a script. While running a script DIAdem will not execute another command.
    The problem with CmdExecuteASync is that the command will be put onto the DIAdem command stack. It will be executed after the script is finished. You can not be sure that the channel data is the same as it was at the time you called CmdExecuteASync. Multiple Calls to CmdExecuteASync will be executed after another.
    Sorry that I do not have a solution but perhaps I can avoid some frustrating DIAdem-OLE-Test-Sessions.
    Matthias
    Matthias Alleweldt
    Project Engineer / Projektingenieur
    Twigeater?  

  • Access ni4882.dll with Qt and MinGW

    I have to control some electric loads and power supplies over GPIB. We use Qt 4.7.4 with MinGW 4.4 (32-bit) on Windows 7 64-bit.
    The packet NI-488.2 GPIB Drivers packet 3.0.2 for Windows 7 64-bit is installed. The GPIB Troubleshooting Utility tool shows "pass" and the Measurement & Automation application can connect to the board and talk to an intrument. So far so good.
    Now I want to write an application to use the NI4882.dll (3.0.0.49153). Unfortunately, there are just object files for Microsoft and Borland compilers and no lib file.
    So we generate a def file from the ni4882.dll with:
    pexports -h ni4882.h ni4882.dll > ni4882.def
    -ni4882.def-
    LIBRARY NI4882.dll
    EXPORTS
    ?compareVersion@nGPIBAPI_NI4882@@YGXABVtSSVersion@@0AAJPBD@Z
    ?getCurrentVersion@nGPIBAPI_NI4882@@YG?AVtSSVersion@@AAJ@Z
    ?getOldestCompatibleVersion@nGPIBAPI_NI4882@@YG?AVtSSVersion@@AAJ@Z
    AllSpoll@12
    DevClear@8
    DevClearList@8
    Then generate the lib with:
    dlltool -k -D ni4882.dll -d ni4882.def -l libni4882.a
    Now, I've build a small test program in Qt.
    -.pro file-
    INCLUDEPATH += $$PWD/include
    LIBS += $$PWD/lib/libni4882.a
    -.cpp file-
    #include "ni4882.h"
    void MainWindow::Init()
      int dd = idev(0,3,0,T10s,1,0);
      if(Ibsta()&ERR)
        Err(tr("Unable to open board:ibdev=%1").arg(dd));
      if( ibonl(0,0)&ERR)
        Err(tr("Unable to close board"));
    void MainWindow::Err(QString message)
      switch(Iberr())
        case 0:
          message.append("(EDVR - System error)");
        } break;
      qDebug("Error : %s\nibsta = 0x%x iberr = %d\n",
        (unsigned int)Ibsta(), (int)Iberr());
    The source code will be compiled and linked without an error.
    But if I run it, the output is:
    Error : Unable to open board: ibdev=32768 (EDVR - System error)
    ibsta = 0x8000 iberr = 0
    Error : Unable to close board (EDVR - System error)
    ibsta = 0x8000 iberr = 0
    So, the question is: What is wrong? Why do I always receive this EDVR error. I also tried SendIFC(0) with the same result.
    With the GPIB Interactive Control tool, I can communicate with my instrument and the NI I/O Trace logs it. But I can't see logs in the Trace tool from my application. Is this an indication?
    Any ideas?
    Marko
    Solved!
    Go to Solution.

    Hi to all,
    after some questions about using the GPIB library with Qt, I've written a step by step description to create object files for MinGW:
    1. Create a folder and copy the "gpib-32.dll" from the "C:\Windows\System32" ("C:\Windows\SysWOW64" in Win7) to this folder.
    2. Copy "ni488.h" from "c:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\include\". (Not ni4882.h!)
    3. Load PExports (my version is 0.44) and put the exe in your folder to. I do not have a URL to load this tool but should be easy to find. It's freeware.
    4. Copy dlltool.exe from "c:\QtSDK\mingw\bin\" to your folder.
    5. Create a batch file "1 - build def file.bat" with the content: "pexports -h ni488.h gpib-32.dll > gpib.def"
    6. Create a batch file "2 - build lib file.bat" with the content: "dlltool -k -D gpib-32.dll -d gpib.def -l libgpib.a"
    7. Start the batch file "1 - build def file.bat" to create the def file "gpib.def"
    8. Start the batch file "2 - build lib file.bat" to create the library file "libgpib.a"
    9. Copy "gpib-32.dll" and "libgpib.a" to your software project. I created the subfolder "lib" and copied the files into.
    10. Copy "ni488.h" to your software project. I created the subfolder "include" and copied the file into.
    11. Into your PRO file type:
    # Include the NI 488.2 library
    INCLUDEPATH += $$PWD/include
    HEADERS += include/ni488.h
    LIBS += $$PWD/lib/libgpib.a
    12. In your source code type:
    #include "windows.h"
    #include "ni488.h"
    bool InitializeGPIBBoard( )
    bool isStarting = false;
    int boardID;        /** @brief Board id. */
    QString boardName;  /** @brief Board name. */
    int boardDescr;     /** @brief Board descriptor. */
    // Get board ID
    SendIFC(boardID);
    if( ThreadIbsta() & ERR )
        ErrorHandling(tr("Unable to open board"));
        return isStarting;
    // Open and initialize a board or a user-configured device descriptor
    wchar_t *aName = new wchar_t[boardName.size()+1];
    m_para.boardName.toWCharArray( aName );
    aName[boardName.size()] = 0;
    m_para.boardDescr = ibfind( aName );
    delete []aName;
    // The board is the System Controller.
    if( ibconfig( boardDescr, IbcSC, 1 ) & ERR )
        ErrorHandling(tr("Unable to set the board to System Controller"));
        return isStarting;
    // Assert interface clear.
    if( ibsic( boardDescr ) & ERR )
        ErrorHandling(tr("Assert interface clear"));
        return isStarting;
    // aso.
    isStarted = true;
    return isStarted;
    13. Be happy! :-)
    I hope that helps. If you have problems, please write me a message or post on this board thread.
    Gruß und viel Erfolg!
    Marko

  • Missing Rules extension dll

    Recently ran into an issue where an MA is failing with the the following error: stopped-extension-dll-file-not-found
    The event logs show its looking for an extension dll that IS in the directory:  C:\Program Files\Microsoft Forefront Identity Manager\2010\Synchronization Service\Extensions\
    Even though the dll is located within this directory, it does not show up when trying to select a dll via the MA properties.
    any thoughts?
    Opper....

    Framework version should have nothing to do with this. FIM Sync supports even 4.5 if installed on the box.
    Could it be an extension DLL instead that is missing?
    Regards, Soren Granfeldt
    blog is at http://blog.goverco.com | facebook https://www.facebook.com/TheIdentityManagementExplorer | twitter at https://twitter.com/#!/MrGranfeldt

  • Does TestStand support extension dll's?

    I am getting ready to evaluate Teststand and want to have some minimal C++ code specific to my device prepared before I install and start the clock ticking. All of the examples I have seen on the web support area appear to be fashioned as 'Regular' dll's (i.e. C-style functions only) Is this the format I must code in or can I choose to code an 'Extension' dll(full support of C++)? If have to use 'Regular' should you choose static or dynamic linking for the best interface with TestStand? Thanks for any advice.

    Richardj -
    The TestStand 3.0 C/C++ DLL Adapter allows you to call C functions and C++ methods in a DLL with a variety of parameter types. In C++ DLLs, the methods can be either global static methods or static class methods. You can create the DLL code module with Microsoft Visual Studio .NET or any other ADE that creates a C/C++ -callable DLL. Additionally, if you have National Instruments Measurement Studio 7.0 (or later) Enterprise Edition and Visual Studio .NET 2003 or later installed,
    you can create and edit C++ code modules directly from TestStand.
    The online help for TestStand has the following topics that should be of interest:
    1) "Exporting Class Methods and Functions in Visual Studio" describes the methods in which the C/C++ Adapter can acce
    ss the exported information from the DLL.
    2) "Edit C/C++ DLL Call Dialog Box" contains a list of support data types under the Parameter Details Table section. The links in the online help jump to more details per data type. The data types include Numeric, Boolean, String, Object, TS Object, C Struct, Arrays, and selected C++ class types. These topics have a lot of details list capability and any restrictions.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • I am running windows 7 64bit, have a brother printer MFC-J4510W with the latest driver update, have Adobe reader 11.0.10.32 and as of today I cannot print any pdf files that before I could, all help appreciated

    I am running windows 7 64bit, have a brother printer MFC-J4510W with the latest driver update, have Adobe reader 11.0.10.32 and as of today I cannot print any pdf files that before I could, all help appreciated
    I followed the FAQ troubleshooting and that didn't help

    Here is what worked for me:
      My usb hub, being usb2, was too fast. I moved the wire to a usb port directory on my pc. That is a usb1 port which is slow enough to run your snyc.

  • How to interface a windows DLL with Forte application?

    Hi,
    I want to use crystal report engine for generating reports from Forte
    application on NT client, which requires interfacing crpe32.dll(report
    engine DLL) with Forte. Can somebody help me out with a sample c project
    (Forte project) either for crpe32.dll or any other DLL.
    What are the requirement for for interfacing a DLL library with Forte
    application .
    Thanks in advance
    Shashidahr Patil N S
    Bangalore

    You can make an empty server only with tpsvrinit that starts your client
    listeners and a tpsrvdone that stops them. Be carefull with sharing ipcs
    between processes, or your clients may get puzzled!!!
    Another choice can be builting a custom WSL/WSH but I haven't done
    this yet and I don't know exactly the troubles related with making them.
    R.G.
    Travis Ward wrote:
    How would you interface a tuxedo app with another application that
    uses tcp/ip socket messaging? I have a vendor product that offers
    a tcp/ip message interface, and would like to know how best to
    integrate it into a tuxedo application. I could write a C application
    that listens and accepts incoming request from the vendors application,
    and then make a tuxedo client call to a service. But this doesn't
    allow me to control the listen thread through tuxedo. The C application
    would have to be started seperately and would not take advantage
    of the tuxedo restart facilities etc of a tuxedo service.

  • How to create a dll with strong name

    Hi All,
    For some security purpose, I need to create a dll with strong name by packaging the bean. I am able to create a dll from the bean but how do I create a strong name(sign) dll? I tried using jarsigner utility to sign the jar and then convert it into dll using packager utility but still the resulting dll is not signed. Please anyone let me know how can generate a signed dll by packaging my bean. Any suggestion/help is most welcome. Thanks in advance.

    Good information on strong names:
    http://www.ondotnet.com/pub/a/dotnet/2003/04/28/strongnaming.html
    Step-by-step procedure:
    1. Download Signer from Codeplex. No installation is necessary.
    2. Backup your unsigned assemblies
    3. Open the Visual Studio Command prompt or otherwise make sure that your PATH includes the .NET SDK binaries, and change to the directory where your assemblies are located
    4. In a command window, execute:
    PATH_TO_SIGNER.EXE\signer -k FILENAME OF YOUR KEY -outdir TARGET DIR -a YOUR DLL
    5. The resulting assemblies should now have a valid strong name from your company key. You can check this with:
    sn -T YOUR DLL
    The public key token must match the token of your public key.
    BTW - this is totally unrelated to Java Programming.

  • Create dll with arrays and call it

    I am trying to create dll with labview in order to pass a 2d array to the main program. The problem is that I don't really know how to create the function to call it (I don't know much about pointers)
    The function I have created to call the dll is void Untitled1(TD1Hdl *Array1) which is suposse to return the array created on it.
    For example, in the program attached, how should I do to pass the array to another program using dlls?
    Thanks a lot,
    Juanlu
    Attachments:
    Untitled 1.vi ‏7 KB

    The code you've provided doesn't do anything (just a control wired to an indicator) so I'm not sure what you're asking here.
    If I understand correctly, you want to build a DLL from your LabVIEW VI.  From what language will you call that DLL?  There is no standard way to pass a 2-D array.  If you can convert to a 1-D array, you can use a simple pointer.  With a 2-D array, you're stuck with LabVIEW's array representation (the TD1Hdl type), which means that whatever code calls that function will need to understand the LabVIEW data type and how to manipulate it.

  • How to load external DLLs with C++ interface in TestStand?

    Hi,
    Can you please let me know how would I load external DLLs with C++ interface in TestStand?
    Regards.

    TestStand 3.x can only call static class C++ methods. TestStand cannot call methods on a C++ object because TestStand does not know how to enstantiate the C++ object.  In TestStand 3.x, there is a online help topic called "Exporting Class Methods and Functions in Visual Studio .NET".
    Scott Richardson
    National Instruments

  • JNI: experience in creating DLLs with G++ (mingw32)?

    Hello.
    I'm trying to create a DLL:
    --------------/HelloWorld.cpp/------
    #include <jni.h>
    #include "HelloWorld.h"
    #include <stdio.h>
    JNIEXPORT void JNICALL
    Java_HelloWorld_displayMessage(JNIEnv *env, jobject obj)
    printf("Hello world!\n");
    return;
    I previously created 'HelloWorld.java'
    class HelloWorld
    public native void displayMessage();
    static
    System.loadLibrary("HelloWorldImp");
    I created 'HelloWorld.class'.
    I created the header file 'HelloWorld.h':
    c:> javah -jni HelloWorld
    But I do not have any idea to create the DLL.
    I tried with:
    c:> g++ -I"D:\j2sdk\include" -I"D:\j2sdk\include\win32" HelloWorld.cpp -shared -o HelloWorldImp.dll
    But I get this error message when calling from 'Main.java':
    Exception in thread "main" java.lang.UnsatisfiedLinkError: displayMessage
    at HelloWorld.displayMessage(Native Method)
    at Main.main(Main.java:6)
    In order to get this message I created 'Main.java':
    class Main
    public static void main(String[] args)
    HelloWorld hello = new HelloWorld();
    hello.displayMessage();
    Does anybody have any experience in creating DLLs with G++???
    Thank you very much.

    Or is it better GCC?

Maybe you are looking for

  • Bug Report - DB toolkit returns error when calling the DefaultDatabase property with SQLite

    There's an old bug in the DB toolkit where calling the DefaultDatabase property returns error -2147217887 if you're using certain DBs (such as SQLite or PostgreSQL and I believe MySQL as well). The problem is that this property is called by a VI whic

  • Cannot use wifi after updating to 6.1.2 on my iPhone 4S WIFI solutions proposed by Apple are not working

    Dear Apple. I was really happy with my iphone4s, IOS 6.0, great product amazing quality and posibilities BUT....... I updated from IOS 6.0 to 6.1.1. and the WIFI nightmare started. I waited for a new update to fix the WIFI problems and I updated my i

  • How to start/stop 2 parallel while loops

    My question might be simple to answer for experts, but as a Labview beginner would be great to receive your help: I hav a VI with two parallel while loops. The first loop runs in a tact of 100 ms to aquire voltage, speed and to output a speed setpoin

  • How to copy selected files in Finder (applescript)

    I don't like to use hotkeys (such as CMD+C, etc.) and would prefer to copy and paste files in OS X with the mouse just like I did in Windows. Unfortunately Finder has no such copy and paste buttons in its toolbar like I know them from Windows Explore

  • Query Modification 2

    Hello All -- We use the below Query and would like to change the BT Address to show just the address -- not the City, State, Zip and Country.  Help?!  Thanks -- Mike SELECT 'Invoice' "Invoice/AR CM", T0.CardCode "BP Code", T0.CardName 'Company', T0.A