Create dllmain for labview built dll

I have a lot of labview code I want to turn it into a DLL. The dll will require some global state initialization after cleaning on process_attach and process_detach. If I was building the C code DLL, that I would create a DLLMain function to take care of this, however when I look in the properties of specifications of generation of a DLL in the LabVIEW Project Explorer, I can't find an option to set my initialsation code and stop. Note that I use LabVIEW 8.6.

On another note, in looking at the docs for the Call library function node we're talking reminders for the reserve, cancel and abort. What does mean to 'reserve' and 'Cancel '? The description suggests that these reminders can be used for initialization and cleanup but I see not how make use of this in a context where my labview built DLL could be described as some other environment (e.g. an exe written in C).

I'm still fairly new to LabVIEW so I apologize if I missed something obvious.

DLLMain is VERY limited in what it can do without causing a charger global potentional lock in Windows System. The execution of LabVIEW VIs is something requiring an infrastructure that is not safe for DLLMain initialization already almost 100%. So there is no way that I can see, LabVIEW could allow you to run a specific VI at load time. And change DLLMain yourself isn't an option either, given that LabVIEW that creates on the fly for each DLL and the code is quite tricky.

What is the problem about the design of your DLL in such a way that the user must call an initialization function explicitly before using other features in it? After all there is no global state in a LabVIEW DLL, except by functions that are loaded into memory and remain in memory for as long as you want to maintain global state. Once function initialized global X() a memory of leaves before the Y() function that references global was loaded into memory, the enitre a global state is lost and reset to the default state when loading function Y().

Tags: NI Software

Similar Questions

  • can I create a DLL file for labview that has DLL library with inside?

    Hello everyone,

    I am developing an application for the cards PCI devicenet in labview (beginner to labview) environment.  Is there a DLL file for the PCI card from the provider. But it's too complicated for a beginner to call each function in the DLL of labview. Therefore, I'm trying to re - use a VC ++ program (working properly) that calls some sellers DLL library functions.    To do this, I created the DLL file which includes all headers and libraries the provider DLL, as indicated in the attached figure. But I couln can't see the effect on the device. is it possible to create a DLL file for labview that has DLL library with inside? If this is not the case, how can I implement the program shown in figure?

    I would like to wish a huge as to advance.

    It is not something I have a lot of experience in so I don't know all the details of the restrictions or requirements etc - but it is certainly possible to create wrappers for the dll and then use them in LabVIEW - this is sometimes necessary to convert some native types/data structures in C/C++ into something that you can switch to your other DLL LabVIEW.

    There is a link here: http://digital.ni.com/public.nsf/allkb/06ECDC689DDA0F3D862574440074CD95

  • LabVIEW built of DLL in an application multi-threaded C++, need help!

    I'm working on a software application which is developed mainly in C++. There is a component of this larger application, however, develop in LabVIEW (for several reasons that I dive in here). This LabVIEW code is therefore run in a C++ wrapper class that calls a built DLLS LabVIEW.

    All this was fine and dandy, until we decided to multi-threaded, our C++ application for an increase in performance. Accordingly, the LabVIEW DLL now is called from multiple threads simultaneously. While this works on a functional level, it seems to create a bottleneck.  All my tests, it is resource locking occurs, such that only one thread has access to the .dll at a time. If I do the .vi used to define the dll as a non-reentrant function prototype so it's what we see. For example, say we have 3 sons all calling the same .dll method call. Thread 1, 2, 3 and all call the .dll file in a few milliseconds of each other. Thread 1 has completed the call .dll after X milliseconds. Thread 2 has finished the .dll call after 2 X milliseconds, and wire 3 full after 3 x milliseconds.

    Now, changing the vi home and runs the same test, we see wire 1, 2, 3 and all end them the call of .dll in 3 x milliseconds. While the fact that they are now the same amount of time to complete you would lead to believe they are spend at the same time, the fact that it takes 3 x milliseconds as opposed to X milliseconds means that they are not.

    Has anyone ever dealt with these issues before? Is it possible to play with the "delivery system" for the vi will have an effect? What happens if .dll methods while remaining attached to the same .dll are called from different threads? Same behavior? Is it a lost cause? Is there any way to make the code in a DLL only built LabVIEW run in two different threads at the same? What I understand is easily achievable with a normal (non - built LV) .dll.

    Please, if anyone has any advice in this area, let me know!

    Much appreciated,
    Jesse Hurdus

    Hi jhurdus,

    I know that you are working with an engineer OR this question, but I wanted to post a reply to one of your last questions.

    When you use the function node library call in LabVIEW, there is the possibility to select 'Run in the user interface thread' or 'run in any thread '.  This option, according to the help file for LabVIEW (dialog box call library functions), allows the developer to pass thread library function node call from the (default) user interface thread to the thread that the VI is running.  Additional details of when you want to switch the thread of execution are in the help file.

    Kevin S.

    Technical sales engineer

    National Instruments

  • Set the string for LabView dll parameter

    Hello

    I created a simple vi LV 2010 (departure vi), which reads the identification of an oscilloscope. Then I take this vi and incorporate it into a dll of LabView. I have test the dll calling LabView (RunFrom dll). Basically, it seems to work, but len and ReadBuffer back empty. It must be in the way I'm configuration configuring the setting for Readbuffer (settings) in the configuration of the dll. I tried several different configurations, but nothing seems to work. Any help is appreciated!

    What is the parameter len?  Normally, you should only set the length of the string, but it seems that you did not do this.  Also, you're passing len by value, and not by reference, so the function is expecting her to be a starter and you will never get return a different value to any value that you provide.

    Do not use a local variable of the ReadBuffer for entry "readbuffer".  You must pass a string initialized long enough to contain the expected quantity of data.  The best way to proceed is to use the array to initialize to create a table of U8, then use the array of bytes to a string.  Set the parameter 'minimum size' to 'len' then run through the length of the string initialized (this is not mandatory but is recommended).  If you need the length obtained output, add another indicator and another parameter to this value.  There might be a way to do it with one by len parameter passing by reference, you need to experiment (it is certainly feasible in C but I don't know if allows him to LabVIEW).

  • License Manager for applications built in LabVIEW

    What I have is a licensing system to add to applications built in LabVIEW that works more or less like a volume, or as FlexLM license server, where a customer is allowed to so many instances/seats of a program.  Most of what I found looking around my own has been for licenses Add-ons for LabVIEW, which is not what I'm looking for (it's what makes third-party attribution license and activation tool box, for example).  I want it to work like saying the CAD program to work - we have X licenses to run SolidWorks, so when someone starts the program, it fist check with the license server to see if a license is available.  If so, the application opens, and then withdraw the license when the app is left.

    I found Protection PLUS 5 of SoftwareKey SDK.  It looks pretty good.  I like that they have a licensed server product that manages the whole "set up a license server" for me.  I think that some (or a lot) of work, this could be useful.

    The problem I have with the product is that it's a terrible LabVIEW library.  It is not to add to the palette of features anywhere.  Not one of the screws included have a description.  They don't follow things to standard LabVIEW style, like the error code from the lower left and the lower right (actually go in and out of the top middle).  They have an online site that lists what each command and how it works, but it's a pain to work looking back from a webpage to LabVIEW.  The only example they included is a little obtuse.

    So I guess I have two questions.  The first is, has anyone used 5 over Protection, and what did you think of him?  The second is, is there an another add-on which recommend you people?

    Oh, just remembered, but I don't know if it has this feature - http://sine.ni.com/nips/cds/view/p/lang/en/nid/211731

  • Need help on how to make dll with VC ++ 2008 for Labview function liblary

    I use VC ++ 2008Express and you want to make the DLL.

    Since I'm using VC ++ 2008, do I have to install the 'MS redistributable"on PC what dose does not have VC ++?

    Is there any free ANSI C compiler do DLL for Labview for use with the function call in libraly?

    Yes, you will probably need the Redistributable Package. Remember to distribute the "Final" of the DLL and not the "debug".

    Regarding the free ANSI C compilers, I'd do a Google search. GNU C/C++ is a very popular.

  • Implement the Std::Vector < < Point2i > > Std::Vector in dll wrapper for LabVIEW

    Hi, I'm writing a wrapper dll that using OpenCV function. I had been sucessfully implement Std::Vector by referring to "An array of clusters to a dll C sending".

    And now, I want to implement the Std::Vector<>> who is a lot like table 2D but each line items may be different.

    In LabVIEW, I attribute a range of cluster of the dashboard cluster of 2 I32 elements, structure which is shown below:

    I think it has the same functionality as Std::Vector<>> in C++.

    So I plug this data on the "Call library function node" structure and generate C code that indicated below:

    /* Call Library source file */
    
    #include "extcode.h"
    
    /* lv_prolog.h and lv_epilog.h set up the correct alignment for LabVIEW data. */
    #include "lv_prolog.h"
    
    /* Typedefs */
    
    typedef struct {
        int32_t elt1;
        int32_t elt2;
        } TD4;
    
    typedef struct {
        int32_t dimSize;
        TD4 elt[1];
        } TD3;
    typedef TD3 **TD3Hdl;
    
    typedef struct {
        TD3Hdl elt1;
        } TD2;
    
    typedef struct {
        int32_t dimSize;
        TD2 elt[1];
        } TD1;
    typedef TD1 **TD1Hdl;
    
    #include "lv_epilog.h"
    
    void funcName(TD1Hdl arg1);
    
    void funcName(TD1Hdl arg1)
    {
    
        /* Insert code here */
    
    }
    

    Then, I write this code show below in dll wrapper:

    void funcName(TD1Hdl Blobs)
    {
        vector < vector > blobs;
    
        // Distribute contents of blobs to Blobs from LabVIEW
        MgErr err = mgNoErr;
        size_t arraySizeInBytes = Offset(TD1, elt1) + sizeof(TD2)*blobs.size();     // Determine row size
        err = DSSetHSzClr(Blobs, arraySizeInBytes);
    
        if (err != mgNoErr)
            return;
    
        (*Blobs)->dimSize = blobs.size();
    
        for (size_t i = 0; i < blobs.size(); i++) {
            arraySizeInBytes = Offset(TD3, elt) + sizeof(TD4)*blobs[i].size();  // Determine col size of each row
            err = DSSetHSzClr((*Blobs)->elt[i].elt1, arraySizeInBytes);
    
            if (err != mgNoErr)
                return;
    
                    /*......................*/
            }
    }
    

    When I call LabVIEW dll, the program get interuption(i.e shutdown) on line where I want to determine the size of each row.

    Could someone give me some suggestions on this subject or promote another application of this requirement?
    Thank you very much.

    MgErr funcName(TD1Hdl Blobs)
    {
        vector < vector > blobs;
    
            Labeling(image_binary, blobs);         // the prototype of this function is: Labeling(Mat &binary, Vector> &blobs)
    
        // Distribute contents of blobs to Blobs from LabVIEW
        MgErr err = mgNoErr;
        size_t arraySizeInBytes = Offset(TD1, elt) + sizeof(TD2)*blobs.size();      // Determine row size
    
            if (contours == NULL)        {                Blobs = (TD1Hdl)DSNewHClr(arraySizeInBytes);                if (Blobs == NULL)                         err = mFullErr;        }        else                err = DSSetHSzClr(Blobs, arraySizeInBytes);
            if (err != mgNoErr)                return err;    for (size_t i = 0; err == mgNoEerr && i < blobs.size(); i++) {
            arraySizeInBytes = Offset(TD3, elt) + sizeof(TD4)*blobs[i].size();  // Determine col size of each row
    
                    if ((*Blobs)->elt[i].elt1 == NULL)                {                        (*Blobs)->elt[i].elt1 = (TD3Hdl)DSNewHClr(arraySizeInBytes);                        if ((*Blobs)->elt[i].elt1 == NULL)                                    err = mFullErr;                }                else               err = DSSetHSzClr((*Blobs)->elt[i].elt1, arraySizeInBytes);
                    if (err == mgNoErr)                {                        (*((*Blobs)->elt[i].elt1))->dimSize = blobs[i].size();
    
                            /*......................*/
    
                    }
            }
            (*Blobs)->dimSize = i;        return err;}
    

    Personaally I've usually done like this. Already, the tar of DSSetHSzClr() indicates if there was something wrong and that the handle cannot really become NULL to call this function.

    To be entirely correct and safety integrated, you must do more than that. But as long as you assume that the incoming picture is always smaller that the outgoing Board will be (usually it be 0 items when you enter this function, but if you reuse sort table in the diagram, by storing it in a registry change for example, this may not be true more) this will be enough.

  • Question about support for LabVIEW DLLS and Unicode

    Hello

    I have a question about LabVIEW and DLL functions calls.

    I use a DLL (sorry, I can't share it) that was written in C. It was written to support Unicode and non-Unicode function calls.

    The Unicode function is valid, then FunctionNameW is called if FunctionNameA is called.

    I am building a few VI to access the library. I have the regular functions of FunctionNameA work.

    My question is, does LabVIEW support versions of function FunctionNameW Unicode, and if so is it necessary Although LabVIEW is already working with the standard function call?

    Am I being redundant or what should I build in Unicode support?

    The first time I tried to test the Unicode functions, I had an error, and I guess this is a system setting.

    Thank you for your time in advance.

    DB_IQ wrote:

    I don't think I have TO implement the Unicode, but I want if I can.

    For what I do, I think almost it is not serious. But I wanted to know if it could be used.

    The short answer is "Yes, you can do it."  However, it may open a new Pandora's box.  If you're not careful, problems and complications that can still spread to other projects that are not using Unicode!  It is better not to summon this monster unless there is absolutely no other way to do the job.

  • How to create own IDE for LABVIEW (such as vision builder)

    Hi all

    My pretty funny question, I know that.

    I like to create Labview Application IDE like Vision Builder.

    How to do this?

    As far as I know that Vision Builder is developed with LabVIEW, the source code of course is not public... But why do you want to create a new IDE for LabVIEW? LabVIEW is an IDE, no?

    I think also Vision Builder uses a lot of scripts and sub-panels, I can't help you much more than that.

    For us - outside NI - script cannot be used in an EXE file, they reserve that for their applications not it will be a difficult task.

  • LabView VB6 Dll interface causes memory leak

    Hello

    We use a large written in vb6 in our laboratory measurement built house software. Recently, we have added a new detector that is read using a labview vi that is called using a dll directly from vb6. Here, we call the function for example of read_detector which starts the collection of data and in a next step writes the data to a string. When you have finished the called function returns a pointer to the string and its length. VB6, we read this pointer and process data.

    This is a memory leak. This could be the case because we presets not memory for labview to write in and so just writing lab data in memory without releasing again? In the current configuration, the function of the dll is just called again and again and each lab view creates a variable outputstring.

    If we allocate the memory. How can we achieve for vb6?

    Best,

    Julian

    Well first of all, a handful of string LabVIEW is a very specific type of data LabVIEW. Not only is only LabVIEW himself knows exactly how to allocate and deallocate, but you must also allocate and deallocate in exactly the same instance of LabVIEW. Given that your LabVIEW DLL is executed for this purpose inside the DLL to run LabVIEW, you must also recover the LabVIEW memory manager functions according to DSDisposeHandle() of the lvrt.dll and call it after you are finished with the strings returned by the DLL function. This is however made very complicated since there are circumstances where not lvrt.dll is actually used by your DLL but another LabVIEW runtime system. And if you happen to have two DLLs created with different versions of LabVIEW LabVIEW, each of them will load and use its enforcement LabVIEW system according to DLL load next. Believe me, you don't want to know how next dll works and how to make this opportunity to work in an application. This is the way for Microsoft to create a monster to manage the hell of the DLL and in this way, rather to create exponential version of hell.

    You create just two memory leaks for each call of DLL function at the moment. LabVIEW creates a new handle of string for each of the parameters string at each call, you dereference the pointer, and then copy the contents into a SysString. But you let the chain handles LabVIEW blow created around the stack and the next your function call, you initialize the new variables of the battery which is initialized to null and LabVIEW creates two new handles. Also you need to do is to define an "Integer DSDisposeHandle(LStrHandle As Long)" exported lvrt.dll function and call it once you have copied the data of the handle in your SysString for both of these handles.

    But basically calling a DLL LabVIEW from no LabVIEW code and using LabVIEW handles string or array as parameters is several times more trouble that it's worth. The easiest would be fair, allocate a large enough buffer beforehand and pass those to the Configuration of the service DLL LabVIEW function to not accept a handful of string LabVIEW but a pointer to a string C instead. Do you work around the problem on the memory allocated by someone else to worry about your own program of VB and duty he properly release. The disadvantage of this approach is, that you should make sure that the memory allocated buffer is large enough for the maximum possible length that your DLL function may never return.

    But another approach might be to leave out LabVIEW total here and call the DAQmx APIs directly from VB.

  • Report to DENY using LV 2011 built dll crash

    I have an application that uses a built DLLs LabVIEW.  LV dll is called by a dll ActiveX component integrated into VS 2010.  The dll of the LV was origninally built using LV 2010 and worked well.  When we build the same application using LV 2011, everything works up until the closure of the top-level application.  We are then prompted with a dialog box telling us that a failure has been detected (journal text below).  The error occurs if we use static or dynamic linking to the dll.  If I disable DENY it to the application, there is no problem; If as we use a component ActiveX, I must create a for the calling application ini file or disable the DENY for the entire system.  None of these options is desirable, because we cannot know all applications that could use our ActiveX module and cannot control each system we will be deployed on.  If we do not find a work around that, we will have to go back to LV 2010.

    ####
    #Date: Thu, October 27, 2011 13:28:20
    #OSName: Windows 7 Professional
    #OSVers: 6.1
    #OSBuild: 7600
    #AppName: home page
    #Version: 11.0 32-bit
    #AppKind: AppLib
    Base address of #LabVIEW: 0 x 30000000

    27/10/2011 1:32:41.891 PM
    Crash 0 x 0: Crash taken to DENY
    File Unknown (0): Crash: Crash captured by DENYING
    Minidump ID: 6972c89d-ba7b-437a-9d41-d3df28550f98
    ExceptionCode: 0xc0020001y
    N

    I think I've solved my problem, which I will describe in the case where the same thing is happening to others.  The root of the problem, near as I can tell, had something to do with the appeal of the LV dll of in another dll. For some reason, when I linked statically to the dll, the DllUnload process caused this crash report.  I found evidence to suggest that this can occur when you unload a dll from in the process of unloading in another dll on the web; as is the case with static linking.  When I tried dynamic link, I initially tried to use a global instance of the HINSTANCE dll who got charged and discharged with the WinApp object, the result would have been basically the same.  If I connect dynamically to the unload dll event and explicitly the dll before the call dll being unloaded, the problem disappears.  My calling dll is an ActiveX application, I tied to the instance of the dll to the COM object rather than the object WinApp.

    Still don't know why it's a problem for LV 2011 and not 2010 LV.  Perhaps the 'crash' still past and just has not been reported significantly since the app was close anyway.  I'm not sure.  Anyway, hope this helps people out there.

  • Is there a way to make an EXE LabVIEW built on Windows XP on Windows 7?

    I have a request that I build (LabVIEW 8.6) on Windows XP, that installs and works fine on other XP machines.  However, after installing it on a Windows 7 computer, I get an error stating that "The procedure entry point CsrNewThread could not be found in the dynamic link library ntdll.dll".  When I look at ntdll.dll (in C:\Windows\System32) with a tool dependency walker on XP, I see the CsrNewThread function listed, but its function is missing from the same DLL named on Windows 7.  So I guess that somewhere along the evolutionary line Windows this function has been removed from ntdll.dll.  My first instinct was to try overwirting ntdll.dll on the Windows 7 machine with one copied from my Windows XP computer.  However, our system administrator only gave me permission to replace this file on the Windows 7 machine.  I could ask him to give me this permission, but I'm not sure it's the best way to go anyway because the other programs in Windows 7 can use ntdll.dll.  I tried to copy the WIndows XP version of ntdll.dll in the local folder on the Windows 7 machine containing my LabVIEW application, but this has not fixed the problem.  And when I look at my application in the dependency walker tool, I see that he is always looking in the ntdll.dll file in the WIndows\System32 folder and not in my local folder.  Yes, is there a way to make an EXE LabVIEW built on Windows XP on Windows 7?  Or I have to do a version for Windows XP and one for Windows 7?  Still, I am using LabVIEW 8.6.

    Thank you

    Keep in mind that LabVIEW 8.6 is not officially supported under Windows 7.  You may want to consider switching to less than LV2009.

  • You looking for LabVIEW Keysight/Agilent/HP 6634 B drivers

    Hi all

    I tried seraching everywhere but I can't find drivers for labview for power supply Keysight/Agilent/HP 6634 B. The only ones I can find are for the 6xxxA series, but not the series of 6xxxB.

    If anyone has or knows where to find them, I would be very grateful!

    Thank you

    You are in error. This is indeed the driver LabVIEW, class IIA type. If you don't like that this driver calls dll, as I wrote above, you could simply create your own driver following the information of the SCPI, located in your device manual package...

    If you want to use the driver, follow these steps:

    1. Download and install the package corresponding to your version of LV IVI: http://search.ni.com/nisearch/app/main/p/bot/no/ap/tech/lang/en/pg/1/sn/n8:3, ssnav:ndr / sb / - nigenso4-...
    2. Restart the PC
    3. Install the driver of the IVI of the site: http://sine.ni.com/apps/utf8/niid_web_display.download_page?p_id_guid=E3B19B3E947E659CE034080020E748... (direct link to the exe: http://sine.ni.com/apps/utf8/niet_download_id.log_ids?p_profile_id=1270941&p_doc_id=E3B19B3E947E659C... )
    4. Enjoy:

  • Is there a decompiler for LABView v4 - v6

    Hello

    One of our customers (pharmaceutical industry) has a LABView application compiled on Win98 + 10 years. The source code is not available, and it seems that no one knows what is under the hood. According to the dates of Win98, I expect to run a version of LABView between v4 and v6.

    Is there a decompiler software, ways to look at the source code or to retrieve information of bases to start reverse engineering.

    Thanks for you answers!

    Alex

    [email protected]

    The whole issue is a bit more complicated. Prior to LabVIEW 8.6 the internal resources of the executable was indeed an archive VI LabVIEW (LLB) and since LLBs didn't have a single hierarchy depth that is somewhat like a single directory. This caused trouble with the latest library LV based instruments as well as classes LVOOP drivers that uses the same name of VI, but with another library prefix each, so that LabVIEW had to move these files to directories external during the generation of executable files, to avoid name collisions.

    In all new versions of LabVIEW, the internal executable resource in which the screws are stored is actually a default ZIP file. You can always force LabVIEW use a LLB format to store files, options by checking the 'use LabVIEW 8.x file layout' in the advanced compile options. Now the ZIP resource was initially stored as a simple ZIP to the format of data resources, and that caused some problems because most ZIP utilities simply analyzes a file for the header of the ZIP file and open it as such, even if the ZIP file resource is anywhere within the file, so that almost all ZIP tools could open an executable of LabVIEW. NEITHER changed this format: ZIP tools can recognize him either.

    Now, yes you can look in the resource LLB and ZIP in the past (and still with a little extra effort) but before everyone screams oh "My precious IP is in the street" Please be aware that the only thing you can do for this resource is to obtain the names of VI and if you manage to load in the fall version of LabVIEW exactly just generic icons on a diagram to see the component connector. Unless of course you also check the "enable debugging" checkbox in the advanced build options, that leaves patterns and the frontpanels in the VIs and actually create something similar to a source distribution packaged.

    So without activate debug compilation option, someone is actually not much more than what he can do by opening any binary DLL created from C, C++, or any public compiler with the tool of Microsoft dependence and MUCH MUCH less than what you can get in any just put such DLL through a disassembler.

    And to my knowledge there isn't a disassembler as tool for LabVIEW VIs to date, and I would consider about 1 billion things more interesting to do than to try to create such a thing.

  • What type of support for labview usb protocols?

    Hello guys I want to connect a device to your pc via a usb port and I want to use labview to analyze the data.

    But first of all, I would like to know what usb protocols support for labview.

    USB, USB CDC and other TMC?

    I ve read labview recognizes a raw device to the usb, but what is? Is it VI to read and send data, or I have to do? If these VI exists, they do the handshake? flow control?

    Thank you.

    Please read the chips and have a look at the USB specification (it is linked to in the nuggets).

    TMC, CDC, MAss Storage are all built on the basic USB protocols.

    LabVIEW has no built-in support for one of these classes of devices except Test and measurement.

    Shane

Maybe you are looking for

  • Toshiba AT200 - date of last update Android release 4.0?

    Hello I bought a Toshiba AT200 United Kingdom tablet with honeycomb. Several sites Internet said that there will be an update to Android 4.0, while other rumors say otherwise... So can you confirm if we really want to have a honeycomb to 4.0 update?

  • Laptop HP2000: disabled

    Deactivation of the system 97702876

  • TouchSmart 300: CMOS battery

    My HP Touchsmart 300 resets the date of 2001, whenever it is turned on.  I googled the problem and the most likely solution is to replace the CMOS battery. Which panels at the back of the computer to access the battery and it is quite straightfoeward

  • HP envy 15 x 360 PC G6T85UA #ABA: HP ENVY 15-u011dx x 360 convertible pc keyboard replacement?

    Hello, I made a mistake and spilled water on my keyboard, the computer itself still works very well but the keyboard is very glitchy and do not type the characters as it should. For example whenever I press the "T" key it also mutes the sound of keyb

  • Mixed in Adobe Muse system font

    Some time ago I downloaded a lettertype True Type, named paper Johhny Eins. He appeared in Muse as system font. And I've been using this lettertype for months for the two web sites. Yesterday paper Johhny Eins was absent from the list of system fonts