DLL return type and parmaters

I must access a DLL developped by VC++ via LV6i with the 'Call Library function'. Everythimg is fine, but the DLL function return type is bool, and I don't find the bool data type in the 'Call library parameter'.
Secondly, I must pass parameters to this DLL function. Parameters type are : std::vector and GUID. How can I pass this type of parameters ??
Function is : bool MyFunction (const GUID &guidMyGuid, std::vector &MyVector).
Thanks in advance.

You can't, you have to create a CIN that reshapes this parameters to something LabView understand.

Similar Messages

  • How comples return types and parameters are mapped

    Hi all!
    I want to know how complex return types and parameters in a java interface gets mapped to wsdl? for example how would the wsdl for the following interface shall look like:
    interface ComplexReturns{
       java.util.Date getLuckyDate(java.util.Date DoB);
       myPack.MyClass getMyClass();
    }

    Hi,
    - In your application module, make a public method that returns an arry, for example an arry of strings[]
        public String[] returnTwoVals(){
            String[] returnvals = {"1","2"};
            return returnvals;
        }- expose this method in the application module
    - in the user interface drag/drop the returnTwoVals method on a page and choose to create a button.
    - double click the button to generate the binding code
        public String commandButton_action() {
            BindingContainer bindings = getBindings();
            OperationBinding operationBinding =
                bindings.getOperationBinding("returnTwoVals");
            Object result = operationBinding.execute();
            if (!operationBinding.getErrors().isEmpty()) {
                return null;
            return null;
        }- you can access the values in the arry by adding this code after the Object result =...
       String[] vals = (String[])result;
       System.out.println(vals[0] + " - " + vals[1]);

  • Trouble defining an interface return type and parameter

    This is what I have so far
    interface Display {
       //Excel
       public HSSFRow createRow(HSSFSheet sheet);
       public HSSFWorkbook createContainer();
       //Pdf
       public Document createContainer(Document document);
       public Document createRow(Document document);
    }Really what I want is one method declaration called createRow() that has an unknown return type and an unknown input parameter type. Is there a way to accomplish this? I will have two classes implement this interface. An Excel class and a PDF class. Those two classes will contain the correct implementations of createContainer() and createRow().
    For example my Excel class will contain this
    public HSSFRow createContainer(){
    return new HSSFWorkbook();
    }and my pdf class will look something like this
    public Document createContainer(Document document){
    return new Document();
    }My main class then can do something like this:
    Display display;
    if(input.equals("xls")){
    display = new Excel();
    }else if(input.equals("pdf")){
    display = new Pdf();
    //Here I can call the correct method to build the outer container
    display.createContainer();What I'm trying to do is have reuse all my algorithms and just have generic calls to create the main container, rows, etc.I had a previous post on this but have created a new one thats more specific to interfaces because ideally I'd like use interfaces here if possible, but not if it will get more complicated than its worth.

    What generic things do you wish to be able to do with all documents? Whatever those things are, they are what should be defined in either an interface or abstract class.
    Here is an example (without any error checking), though it's not the only approach you could take:
    public interface ForumKidDocument {
         public void nextRow();
         public void addTableCell(String cellContent);
         public void save(File file);
         // add whatever other methods you want all documents to be able to do
    public class ExcelForumKidDocument implements ForumKidDocument {
         private HSSFWorkbook workbook;
         private HSSFSheet worksheet;
         private HSSFRow currentRow;
         private int row;
         private int col;
         public XLSForumKidDocument() {
              this.workbook = new HSSFWorkbook();
              this.worksheet = workbook.createSheet();
         public void nextRow() {
              this.currentRow = this.worksheet.createRow(row++);     
              col = 0;
         public void addTableCell(String cellContent) {
              HSSFCell cell = currentRow.createCell(col++);
              cell.setCellValue(cellContent);
         public void save(File file) {
              //TODO:  save workbook to the given File
    public class PDFForumKidDocument implements ForumKidDocument {
    }Then in your outer method, you work with ForumKidDocument instances, calling only ForumKidDocument methods, without having to know anything about the inner workings of the document type.

  • About return type and parameter type in IDL

    I don't know how to define return type and parameter type in
    operations in a module which are not listed in predefined in
    IDL. can I define these types as java class?
    can someone help me where a tutorial about this in detail can
    be found?
    thanks a lot

    My understanding is that if something is not in the IDL definition, then as far as the CORBA system is concerned it doesn't exist.
    Therefore any methods you create in a class that implements an IDL defined interface, that are outside that interface, are completely free and outside the CORBA system.
    The parameters and return types of these 'local native' methods should be java classes. All methods and variables outside the IDL spec will only be visible to the local JVM.
    ciao
    Jim
    PS - there is a zip file containing a very long and fairly messy demo of this behaviour at http://clio.mit.csu.edu.au/subjects/itc327/Asg2Demo.zip
    it has an html file which describes using additional non-IDL 'local native' methods for implementing a save/load function

  • Covariant return types and reflection

    I have TextControl which extends AbstractValueControl, which has this method:
    public ValueModel getModel() {return (ValueModel)super.getModel();}AbstractValueControl extends AbstractControl, which has:
    public ControlModel getModel() {return (ControlModel)super.getModel();}AbstractControl extends AbstractComponent, which has:
    public Model getModel() {return model;}(The models are all interfaces.)
    So at runtime I'm enumerating the methods of TextControl.class using reflection, and the Method for getModel() indicates a return type of ControlModel!
    Reflection must recognize covariance, or the return type would indicate simply Model. but TextControl extends AbstractValueControl, so I would expect (and desire) the return type to be ValueModel. Why isn't this the case?
    Thanks,
    Garret

    So at runtime I'm enumerating the methods of
    TextControl.class using reflection, and the Method
    for getModel() indicates a return type of
    ControlModel!
    Reflection must recognize covariance, or the return
    type would indicate simply Model. but TextControl
    extends AbstractValueControl, so I would expect (and
    desire) the return type to be ValueModel. Why isn't
    this the case?Because you're enumerating the methods in random order! (See the JavaDoc for Class.getMethods()).
    If you're lucky, you'll encounter the "correct" version of getModel first, if not, you'll get to the compiler-generated bridge-method with the same name first.
    You need to filter out the compiler-generated methods using Method.isSynthetic(). There should be only one getModel in each class where isSynthetic == false

  • Same functions with different return types in C++

    Normally the following two functions would be considered the same:
    int getdata ( char *s, int i )
    long getdata ( char *s, int i )
    Every other compiler we use would resolve both of these to the same function. In fact, it is not valid C++ code otherwise.
    We include some 3rd party source in our build which sometimes messes with our typedefs causing this to happen. We have accounted for all of the function input types but never had a problem with the return types. I just installed Sun ONE Studio 8, Compiler Collection and it is generating two symbols in our libraries every time this occurs.
    Is there a compiler flag I can use to stop it from doing this? I've got over 100 unresolved symbols and I'd rather not go and fix all of them if there is an easier way.

    Normally the following two functions would be
    considered the same:
    int getdata ( char *s, int i )
    long getdata ( char *s, int i )Not at all. Types int and long are different types, even if they are implemented the same way.
    Reference: C++ Standard, section 3.9.1 paragraph 10.
    For example, you can define two functions
    void foo(int);
    void foo(long);
    and they are distinct functions. The function that gets called depends on function overload resolution at the point of the call.
    Overloaded functions must differ in the number or the type of at least one parameter. They cannot differ only in the return type. A program that declares or defines two functions that differ only in their return types is invalid and has undefined behavior. Reference: C++ Standard section 13.1, paragraph 2.
    The usual way to implement overloaded functions is to encode the scope and the parameter types, and maybe the return type, and attach the encoding to the function name. This technique is known as "name mangling". The compiler generates the same mangled name for the declaration and definition of a given function, and different mangled names for different functions. The linker matches up the mangled names, and can tell you when no definition matches a reference.
    Some compilers choose not to include the return type in the mangled name of a function. In that case, the declaration
    int foo(char*);
    will match the definition
    long foo(char*) { ... }
    But it will also match the definitions
    myClass foo(char*) { ... }
    double foo(char*) { ... }
    You are unlikely to get good results from such a mismatch. For that reason, and because a pointer-to-function must encode the function return type, Sun C++ always encodes the function return type in the mangled name. (That is, we simplify things by not using different encodings for the same function type.)
    If you built your code for a 64-bit platform, it would presumably link using your other compilers, but would fail in mysterious ways at run time. With the Sun compiler, you can't get into that mess.
    To make your program valid, you will have to ensure your function declarations match their definitions.

  • Premature EOF encountered with Document as a return type

    I have created a web service that returns a Document object. I have successfully deployed the web service to my local OC4J standalone (9.0.3), and tested it within JDeveloper with a stub. The same web service is deployed to our test server running 9iAS 9.0.2, with OC4J 9.0.2. When I change my stub to point to the test server, I get the following error rather than the Document returned:
    [SOAPException: faultCode=SOAP-ENV:IOException; msg=Premature EOF encountered; targetException=java.io.EOFException: Premature EOF encountered]
    Thinking this was a OC4J version issue, I installed 9.0.3 standalone on the same machine. I am able to navigate to the web services page for my web service successfully, invoke the web service, and see the correct Document embedded within the SOAP response. I was unable to do this on the 9.0.2 OC4J instance. Unfortunately, I get the same error when running the stub from JDeveloper and pointing to the 9.0.3 web service.
    In an probably unrelated note, I am trying to use the web services portlet, pointing to my stub to call my web service. With this, I get the following error:
    ERROR: Failed to handle HTTP Request
    oracle.xml.parser.v2.XMLDOMException: Object not supported in current implementation.
         at oracle.xml.parser.v2.XMLDocument.importNode(XMLDocument.java:1303)
         at oracle.portal.provider.v2.webservice.RPCWebServiceRenderer.expandResult(Unknown Source)
         at oracle.portal.provider.v2.webservice.RPCWebServiceRenderer.invokeService(Unknown Source)
         at oracle.portal.provider.v2.webservice.WebServiceRenderer.renderBody(Unknown Source)
         at oracle.portal.provider.v2.render.RenderManager.render(Unknown Source)
         at oracle.portal.provider.v2.DefaultPortletInstance.render(Unknown Source)
         at oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.showPortlet(Unknown Source)
         at oracle.webdb.provider.v2.adapter.soapV1.ProviderAdapter.handleHttp(Unknown Source)
         at java.lang.reflect.Method.invoke(Native Method)
         at oracle.webdb.provider.v2.adapter.SOAPServlet.doHTTPCall(Unknown Source)
         at oracle.webdb.provider.v2.adapter.SOAPServlet.service(Unknown Source)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
    Thinking this is an xmlparser version issue, not sure which parser is taking precendence, the OC4J_Portal parser, my application parser, or the ORACLE_HOME parser.
    I have thrashed on these issues for a little while, and hopefully I have missed something obvious here. Anything jump out at anyone?
    Thanks!

    Mike,
    Thanks for the response. The reason I am inclined to use Document as a return type is for reuse. Our system is based on the creation of Document representations of content to be displayed, and we use framework code to transform given an xsl. I am trying to establish a pattern for publishing web services right from our existing processes that return the Document. I did play with Element, but would rather not go that way.
    I think my web service is working fine now, actually. (Why it can't be tested from JDev, I'm not sure. I will try the server side proxy as you suggest). It is returning my xml content within the <return> of the response. The problem is transforming the result with an xsl. I have tried the web services portlet, which won't work for me because of my return type, and I'm now trying the OmniPortlet, which seems to be coming tantalizingly close to working ;). Not sure if you have used the OmniPortlet or not, but running it, I can see the return of the web service with my xml, which looks good, but then I get this error:
    3/12/03 8:55 AM omniPortlet: [id=(null), instance=3915_OMNIPORTLET_49587206] XMLData.next => o
    racle.webdb.reformlet.ReformletException: Error occured while fetching XML data.
    Also, I've had problems getting the OmniPortlet to recognize my xsl filter for the xml being returned.
    Anyone have any success using OmniPortlet consuming a web service that returns xml to be transformed with an xsl filter?
    Thanks,
    Jason

  • Covariant return types - JLS to support but JVM will not?

    Could you please confirm the following? My understanding is that covariant return types will be supported by the JLS but the JVM will know nothing about them. That is, the invokevirtual instruction will not change to support covariant return types but rather the compiler will use bridge methods to simulate support. Is this correct?

    Right: but is there support for this in 1.5?
    javac -verbose -source 1.5 -target 1.5 *java
    was run on a .java file with the following methods and it failed "getX already defined"
    public Integer getX() {
    return(null);
    public String getX() {
    return(null);
    The above would be overloading by return type and fails to compile.
    ================
    class A {
    Exception f() {}
    class B extends A {
    BindException f() {} // overload or override?
    The above would be covariant returns and works just fine right?

  • Difference between Return Po and Retuning with 122 movement type

    Dear Experts,
    i need some clarification on Return Po and retuning goods with 122 movement type in the context of Excise invoice.
    in our previous company we used 122 movement we capture excise invoice with J1IS and referring the incoming excise
    and return the material to vendor.
    in present company we are directly doing return Po and capturing excise invoice with J1is,here we are not capturing against the
    incoming excise,please clarify me.
    Regards,
    Varun

    Hi,
    Refer the below thread:
    Difference between 102, 122 and 161
    In terms of stock movement, both 122 and 161 represents the return delivery to your vendor. The difference takes place in terms of how you are returning your delivery to your vendor - It is movement type 161 that SAP will automatically propose if your return PO is referenced. Otherwise, 122 movement type will be used instead.
    Regards,
    Prashant
    Edited by: Prashant Prasad on Apr 22, 2011 8:51 AM

  • How does "Unflatten From String" take a type and return a value of that type?

    http://zone.ni.com/reference/en-XX/help/371361E-01/glang/unflatten_from_string/
    How exactly does the "type" argument for "Unflatten From String" work? I need to create a VI that takes a type, passes it as an argument to several calls of the "Unflatten From String" function, and returns an array containing elements of the type originally passed. The "Unflatten From String" function seems to do some magic though, because the type of the "value" that it outputs changes depending on the type it is passed as input. How do I do the same magic in my VI?
    Ultimately, what I need to accomplish is an unflatten-list operation. Given a type T and a byte string of length L (which contains a concatenation of T elements that are flattened to their bytes), create a VI that unflattens all the types in the string and return an array of length (L / sizeof(T)) that contains each type.
    Note: performing the unflatten-list operation is trivial, but I cannot for the life of me figure out how to do it in a VI that takes a type and returns an array of the appropriate type. By the way, my data is being given to me from another source, so please don't bother suggesting that I should be flattening an array using LabVIEW's "Flatten To String" function in the first place. My data is not given in LabVIEW's array format: http://zone.ni.com/reference/en-XX/help/371361B-01/lvconcepts/flattened_data/
    Thanks a ton!
    -Wakka

    Take a look at this example:  You can see that the flattened string contains several bytes.  The first four bytes contain the length of array (number of elements).  Since the data type is U32, the next 32 bits (4 bytes) contains the value of the first element, and so on.  Could you possibly use this scheme to do what you want to do?  Other data types present different outputs.  You would have to experiment with them.
    - tbob
    Inventor of the WORM Global

  • FM that returns condition price,type and value when PO no.& PO item passed

    Dear All,
    I am in search of FM that returns all the condition types and its repective values,price for a given PO no. and PO item number.
    I used BBP_CONDITIONS_GETDETAIL FM which is not suiting my requirement because , i need only those conditions whose konv-kappl = 'TX' , where as this FM returns all those conditions used for that PO.
    I am looking for your valuable inputs.
    Regards,
    Swetha.

    Hi Swetha
    From what u'v written , i understand that you need sumthing like this...
    PO 1 , Item1
    cond - A --200
    cond - B --450
    PO1, Item2
    cond- A -- 350
    So you would want your result as:
    PO1
    Cond A = 550
    Cond B = 450.
    Now if i am correct here, the first step is data fetching which would be really simple.
    Next just sort you internal table by condition number and condition type.
    Then use AT NEW with ref to Condition Record Number and then Condition Type, to sum.
    That should be it.
    Cheers
    Ravish

  • Rmic and "contains an invalid return type."

    Hello,
    since two days, rmic does not compile anymore. rmic is called via an Ant job like this:
    <javac srcdir="${src}" destdir="${bin}" depend="true">
    </javac>
    <rmic base="${bin}" includes="../**/*.class" iiop="true" idl="true">
    </rmic>
    And I get errors like
    [rmic] error: Class Session contains an invalid return type.
    in the Eclipse output console. On the other hand, the Session interface looks like this:
    public interface Session extends Remote {
    public Enumeration enumerateLocks() throws RemoteException;
    [more Methods]
    (yes, all methods throw RemoteException)
    If I comment out all methods of Session, other messages appear, such as:
    [rmic] error: Class ....AccessService contains an invalid argument type in method findSession.
    [rmic] error: Class Loader contains an invalid return type.
    [rmic] error: Class ....Service contains an invalid argument type in method init.
    All classes compile fine with both Jikes and the Eclipse compiler.
    Thanks for any help,
    Johann

    Sorry, even if I comment out Enumeration, rmic will not compile the classes. To me it looks like something in the interface for Session is wrong, but I dont know what it is...
    public interface Session extends Remote {
    public Unique sessionID() throws RemoteException;
    public long sessionCreated() throws RemoteException;
    public long sessionDestroyed() throws RemoteException;
    public void destroySession() throws RemoteException;
    public int actionsPerformed() throws RemoteException;
    public Enumeration enumerateActions() throws RemoteException;
    public Lock createLock(Reference ref) throws RemoteException, LockedException;
    public Lock createLock(Reference ref, long milliseconds)
    throws RemoteException, LockedException;
    public void releaseAllLocks() throws RemoteException;
    public Enumeration enumerateLocks() throws RemoteException;
    public boolean isDestroyed() throws RemoteException;
    If I comment out all methods in Session, I can compile Session with rmic, but other errors appear:
    [rmic] error: Class ...AccessService contains an invalid argument type in method isValidSession.
    [rmic] error: Class Loader contains an invalid return type.
    [rmic] error: Class ...Service contains an invalid argument type in method init.

  • Final keyword and return type ...

    static byte m1() {
    final char c = 'b';
    return c; // THIS IS FINE NO COMPILER ERROR
    static byte m2() {
    char c = 'b';
    return c; // COMPILER ERROR
    The first return type is LEGAL, but the secoond type is not because it is not final. Why is this the case? Going from a char to a byte is a down conversion. Why does the compiler allow it for a final variable and dis-allow it for the other variable?

    i am curious... what is this one about ?See section 5.2 of the JLS, regarding assignment conversion:
    Assignment conversion occurs when the value of an expression is assigned (�15.26) to a variable: the type of the expression must be converted to the type of the variable. Assignment contexts allow the use of an identity conversion (�5.1.1), a widening primitive conversion (�5.1.2), or a widening reference conversion (�5.1.4). In addition, a narrowing primitive conversion may be used if all of the following conditions are satisfied:
    The expression is a constant expression of type byte, short, char or int.
    The type of the variable is byte, short, or char.
    The value of the expression (which is known at compile time, because it is a constant expression) is representable in the type of the variable.

  • Both type and assembly name must be specified

    Hi All,
    I have 3rd party dll, I am adding the ref to it in my project.
    I have created a wrapper class for one of the 3rd part dll class, my wrapper class is inheriting for IPofSerializer and serilizing the object.
    In my pof-config.xml file I have created a new user-type for the class in the 3rd party dll.
    <pof-config xmlns="http://schemas.tangosol.com/pof">
    <user-type-list>
    <!-- include all "standard" Coherence POF user types -->
    <include>assembly://Coherence/Tangosol.Config/coherence-pof-config.xml</include>
    <!-- include all application POF user types -->
    <user-type>
    <type-id>1002</type-id>
    <class-name>DCBOMLib.DCStockMarketClass</class-name>
    </user-type>
    </user-type-list>
    </pof-config>
    While starting the Cache i am getting the error "Both type and assembly name must be specified", where so i find the assembly info for the type DCBOMLib.DCStockMarketClass(its a 3rd party dll)
    Regards,
    Akhil

    Hi,
    Thanks for the reply, pls find some more details below:
    1. Contents of pof-config.xml
    <pof-config xmlns="http://schemas.tangosol.com/pof">
    <user-type-list>
    <!-- include all "standard" Coherence POF user types -->
    <include>assembly://Coherence/Tangosol.Config/coherence-pof-config.xml</include>
    <!-- include all application POF user types -->
    <user-type>
    <type-id>1001</type-id>
    <class-name>Examples.ContactInfo,ContactCache.Windows </class-name>
    <serializer>
    <class-name>Examples.ContactInfoSer, ContactCache.Windows</class-name>
    </serializer>
    </user-type>
    <user-type>
    <type-id>1002</type-id>
    <class-name>DCBOMLib.DCStockMarketClass, Interop.DCBOMLib</class-name>
    </user-type>
    </user-type-list>
    <allow-interfaces>true</allow-interfaces>
    <allow-subclasses>true</allow-subclasses>
    </pof-config>
    If i dont specify type-id 1002 it says unknown user type DCBOMLib.DCStockMarketClass
    2. Pls find the code
    public class ContactInfoSer : IPofSerializer
    public object Deserialize(IPofReader reader)
    string Name = reader.ReadString(0);
    string Street = reader.ReadString(1);
    string City = reader.ReadString(2);
    string State = reader.ReadString(3);
    string Zip = reader.ReadString(4);
    DCBOMLib.DCStockMarketClass DCSCM = (DCBOMLib.DCStockMarketClass)reader.ReadObject(5);
    reader.ReadRemainder();
    return new ContactInfo(Name, Street, City, State, Zip, DCSCM);
    public void Serialize(IPofWriter outo, object o)
    ContactInfo cinfo = (ContactInfo) o;
    outo.WriteString(0, cinfo.Name);
    outo.WriteString(1, cinfo.Street);
    outo.WriteString(2, cinfo.City);
    outo.WriteString(3, cinfo.State);
    outo.WriteString(4, cinfo.Zip);
    outo.WriteObject(5, cinfo.DCSCM);
    outo.WriteRemainder(null);
    During runtime I am getting following exception for the below code
    DCBOMLib.DCStockMarketClass dc = new DCBOMLib.DCStockMarketClass();
    ContactInfo contact = new ContactInfo(txtName.Text,
    txtStreet.Text,
    txtCity.Text,
    txtState.Text,
    txtZip.Text,dc);
    cache.Insert("124", contact);
    Exception -
    {"Missing IPofSerializer configuration (Config=file://Config\\pof-config.xml, Type-Id=1002, Type-Name=DCBOMLib.DCStockMarketClass, Interop.DCBOMLib)"}
    Is it required that the 3rd party dll having DCBOMLib.DCStockMarketClass should be inheriting from Serializable or Object?
    Regards,
    Akhil

  • 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.

Maybe you are looking for

  • How do i move files from one computer to a new computer for ipod touch

    My computer that has all the ipod files etc on it has crashed.  I need to know how to move them to a new computer.

  • Memory upgrade:. Lenovo 3000 N200 0769-B5G

    I just bought new memory for upgrade. My old was: 2 X 512MB. PC2 5300 DDR2 667 The new: 2 X 2GB. PC2 5300 DDR2 667. When I installed the new memory the computer is turn on, i can enter to bios ( i see that it reconized 4gb) but i can't boot the compu

  • Unequal records Reverse Pivot?

    Hi, I have to merge several records into one. For example in source i have two cols one with ID in COL1 and text with COL2:- COL1     COL2 123        ABC 123        DEF 123        GHI 567        LMN 324        PWS 324        SWX 890        XZY 890   

  • If I didn't ask for a SIM card when I purchased today, can I still get one for free tomorrow?

    If I didn't ask for a SIM card when I purchased today, but after I went back home I found that I indeed need a SIM card for my new iPhone. Can I still get one for free tomorrow? Or... will I be charged for SIM card?

  • PowerBook G4 17 Boots, No Screen

    I hope this isn't the end of road for my beloved PowerBook.  It was working fine, then I received a couple of OS error messages I've never seen before. "The OS Quit" or something to that effect, and after several restarts I can get a startup chime bu