LV 8.6 library function in an example is not found
Several "examples" in LV 8.6 include a particular library function that is not found when I load the example VI. Where can I find this function? I have an "example" of one of the vi's attached containing the mystery function.
Thank you,
Chuck
Solved!
Go to Solution.
Attachments:
Error Handling callingVI.vi 20 KB
Additional info: The Information text box on the Example Finder provides descriptions for the examples. If an example requires a toolkit and you don't have it installed, it will tell you.
Attachments:
toolkit missing.png 3 KB
Similar Messages
-
Make (RTL) direction function in PS cc 2014 not found!
u can see this to know what is the problem
thanks a lot
2014-11-09 22:28 GMT+03:00 PBArtattack <[email protected]>:
make (RTL) direction function in PS cc 2014 not found! created by
PBArtattack <https://forums.adobe.com/people/PBArtattack> in *Photoshop
General Discussion* - View the full discussion
<https://forums.adobe.com/message/6913790#6913790> -
Call SAP function from VB - Structure member not found " unknown "
Hello,
(I don't know if this is the appropriate forum, but I didn't find any which seem to match my topic ...)
I use the following VB code to call the SAP function ARCHIV_PROCESS_RFCINPUT:
Dim bapiControl As SAPBAPIControl
Dim logonControl As SAPLogonControl
Dim functions As SAPFunctions
Set bapiControl = New SAPBAPIControl
Set logonControl = New SAPLogonControl
Set functions = New SAPFunctions
Set bapiControl.Connection = logonControl.NewConnection
' do login
Set functions.Connection = bapiControl.Connection
Dim myFunction As SAPFunctionsOCX.Function
Set myFunction = functions.Add("ARCHIV_PROCESS_RFCINPUT")
Dim myStructure As SAPFunctionsOCX.Structure
Set myStructure = functions.CreateStructure("OARFCIN")
' the following values are just examples
myStructure("ARCHIV_ID") = "01"
myStructure("ARC_DOC_ID") = "1234567890123457890"
myStructure("AR_OBJECT") = "TIF"
myStructure("DOC_TYPE") = "FIIINVOICE"
myStructure("BARCODE") = "1"
myFunction.Exports("DOCUMENT_ENTRY") = myStructure
At this point execution stops with the following error message:
Err.Number: 1006
Err.Description: Structure member not found "<unknown>"
Err.Source: wdtfuncs
What is wrong? The function ARCHIV_PROCESS_RFCINPUT needs one input parameter called "DOCUMENT_ENTRY" which is of type OARFCIN ...
ARCHIV_CONNECTION_INSERT, which has only Strings as input parameters (no structures), works fine ...
I tried all variations I could think of:
myStructure.Value("ARCHIV_ID") = G_csDefaultRepository
instead of myStructure("ARCHIV_ID") = G_csDefaultRepository
declaring bapiControl, logonControl and functions as Object, and instanciating them with CreateObject(...)
myFunction.Exports(0).Insert "DOCUMENT_ENTRY", myStructure
instead of myFunction.Exports("DOCUMENT_ENTRY") = myStructure
(which gave me a "Collection member not found" error) ...
Nothing worked ...
What is wrong with this code??
Thanks for help!
Regards
SteffiHi Ralf,
try substituting following code:
' the following values are just examples
myStructure("ARCHIV_ID") = "01"
myStructure("ARC_DOC_ID") = "1234567890123457890"
myStructure("AR_OBJECT") = "TIF"
myStructure("DOC_TYPE") = "FIIINVOICE"
myStructure("BARCODE") = "1"
myFunction.Exports("DOCUMENT_ENTRY") = myStructure
with that one:
Set myStructure = myFunction.Exports("DOCUMENT_ENTRY")
' the following values are just examples
myStructure.Fields("ARCHIV_ID") = "01"
myStructure.Fields("ARC_DOC_ID") = "1234567890123457890"
myStructure.Fields("AR_OBJECT") = "TIF"
myStructure.Fields("DOC_TYPE") = "FIIINVOICE"
myStructure.Fields("BARCODE") = "1"
Let me know!
Enjoy!! -
Function of moteur called but not found os maverick
a warning wake -up appears when the OS Maverick is launched on my Mcbook how to delete this ?
Ah, I think I now have an explanation. I also have some French software, and part of the message is the French word "Moteur". This warning came BEFORE I updated my Diagonal Petit Prolexis French spelling and grammar checker software to version 4.0.2 compatible with Mavericks (I heartily and highly recommend this brilliant progamme). Updating it seems to have CURED THE PROBLEM for me at least.
Good luck, I hope it works for you too. -
SourceSet in function (Jscript) not found any Data View
HI,
I have the code:
var = oDB xfa.sourceSet.DataConnection.clone (1);
oDB.nodes.item (1). query.setAttribute ("text", "CommandType");
oDB.nodes.item (1). query.select.nodes.item (0). value = "SELECT * FROM vw_products";
oDB.open ();
oDB.close ();
This code works perfectly if I call in initialize the form.
(form1.Inicial::initialize - (JavaScript, both))
But the same code does not work if I call a function in Jscript, (Function test {} for example). Not found "sourceSet.DataConnection".
Any idea what could be? I've tried everything but it only works if i put in initialize the page.And a further example from my library of examples, just to help you out...
SQL> CREATE OR REPLACE TYPE num_descript AS OBJECT(num number, descript varchar2(30))
2 /
Type created.
SQL> CREATE OR REPLACE TYPE tbl_num_descript AS TABLE OF num_descript
2 /
Type created.
SQL> CREATE OR REPLACE PACKAGE reftest AS
2 FUNCTION pipedata(p_choice number) RETURN tbl_num_descript PIPELINED;
3 END;
4 /
Package created.
SQL> CREATE OR REPLACE PACKAGE BODY reftest AS
2 FUNCTION pipedata(p_choice number) RETURN tbl_num_descript PIPELINED IS
3 v_obj num_descript := num_descript(NULL,NULL);
4 v_rc sys_refcursor;
5 BEGIN
6 IF p_choice = 1 THEN
7 OPEN v_rc FOR SELECT empno as num, ename as descript FROM emp;
8 ELSIF p_choice = 2 THEN
9 OPEN v_rc FOR SELECT deptno as num, dname as descript FROM dept;
10 END IF;
11 LOOP
12 FETCH v_rc INTO v_obj.num, v_obj.descript;
13 EXIT WHEN v_rc%NOTFOUND;
14 PIPE ROW(v_obj);
15 END LOOP;
16 CLOSE v_rc;
17 RETURN;
18 END;
19 END;
20 /
Package body created.
SQL> select * from table(reftest.pipedata(1));
NUM DESCRIPT
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
14 rows selected.
SQL> select * from table(reftest.pipedata(2));
NUM DESCRIPT
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS -
Page not found Error while creating new sub folder in the Sharepoint Document Library
Hi All,
I am a site collection administrator when i creating new sub folder under the folder in document library, am getting below error
"Page not found The
page you're looking for doesn't exist."
please help me, Thanks in advance!!
SrinivasHi Srinivas,
Please check ULS log for more useful information when this error occurs.
Please also check if this issue could be reprodued in other libraries, if not, you can use the new library instead.
Thanks
Daniel Yang
TechNet Community Support -
CDMC - Function Modules not Found
Hi,
Initially the Solution manager ST level is 23 and CDMC clearning analysis worked will with ERP satellite system.
Later, Solution manager has upgraded with 24 and not able to actiavate the statistics and unable to perform clearning analysis.
Below are 2 known errors(there could be more),
Function Modules "CNV_CDMC_CC_GET_COMPS_OF_SYS" and "CNVCDMC_OBJECT_EXISTENCE_CHECK" not found.
Did any face this similar issues ?
Do we need to consider any component upgrade at Satellite systems with respect these upgrades in solution manager ?
Note: 3 of components are upgraded in solution manager which are ST , ST-A/PI and ST-SER...
Regards,Hello,
If you are on ST-PI SP03 this note is needed in all the participating systems of your CDMC project
1509340 - Collective Note with all corrections for CDMC (ST-PI SP03)
Also pleae review SAP Note 1348772 - CDMC Corrections - Composite SAP NotePlease look under Solution for Support Package 03 relevant Notes:
This will ensure that your system works without errors!
Regards,
Paul -
How to call a C pointer from call library function node
I have a client/server application which the client I am trying to develop using Labview. When I use to communicate the server and the client using the program provided by the manufacter, the system works perfectly.
Now, I am trying to develop a system using labview, because I need to get another things.
I have the DLL provided by the manufacter and the .h too, so I can check the functions parameters. One of these functions needs to be called using a struct element. Probably, the function's DLL instantiates the elements of this struct. I use the call library function node to do it.
When I receive the data, the function returns to me the struct that I passed as a parameter before, and then I can read all the elements of the struct, except the string element that returns nothing. The struct elements that are numerical, I can read them perfectly.
Another thing that is important to say, is that the string data was not returned in fact by the DLL function that the system calls. I have to pass a pointer (I use it as unsigned 16 in Labview, but I tried before as string and unsigned 8) as a parameter, and this pointer will point to the memory location that the string is. When I try to read what is returned by the function, I can read nothing. The same function returns that the size of data that is returning is 17 bytes.
How can I solve it?
Thank you in advanceDid you take a look at the example that ships with LabVIEW that shows how to do all sorts of data passing to DLLs. I believe your situation is one of the examples listed. You can find the example VI in the "<LabVIEW install directory>\examples\dll\data passing" directory.
-
Window doesn't close wheh Call Library Function Node set to Run in Any Thread
This is a problem regarding Call Library Function Nodes running in the UI thread or any thread.
I have a camera which has its own API supplied as a dll. I have created a set of VI wrappers which each call a function in the dll through a Call Library Function Node.
Initially each CLFN was set to 'Run in the UI thread' (the default).
To start the camera streaming images I call (through a CLFN)
ICubeSDK_Start(int CamIndex, Hwnd, ImgHandle, bool Preview, bool callback);
If Preview = True then the image is displayed in a preview window.
If ImgHandle = NULL a default preview window
is used.
In the CLFN definition I define:
ImgHandle as a U32
Preview as a I32
To stop the camera streaming images I call
ICubeSDK_Stop(int CamIndex)
In the actual implementation I set ImgHandle = 0 (NULL) and Preview = 1 (true).
This all works fine, and a preview window is opened and images displayed. When I call ICubeSDK_Stop the preview window is closed.
However, I would prefer to set the CLFN to 'Run in any thread' because
a) when run in the UI thread the preview window randomly gets sent to the back when I switch focus between open VI windows (presumably because it is in the same thread as the VIs)
b) I don't want to put unnecessary stuff in the UI thread
c) my (naive?) understanding is that it is safer to run in any thread
So I have set all CLFNs to 'Run in any thread'
When I do this the preview window opens OK, and behaves like any other non LabVIEW controlled window in terms of focus. But when I call ICubeSDK_Stop() the preview window does not get closed properly, it just shows a blank image. I can't close it manually, there is no X in the corner and no option to close it from the taskbar. To get rid of it I have to close the LabVIEW project it is spawned from, which often results in a crash. It does appear as a separate item in task manager but if I 'end process' it, LabVIEW closes (and often crashes) as well.
If I change only the CLFNs that call the Start and Stop functions back to 'Run in the UI thread' then it all works fine again, except that the preview window gets sent to the back randomly as before.
So, what do I have to do to get the preview window to close properly if I set the CLFN to 'Run in any thread'.
Alternatively, is there a way to close the window programmatically (ie force it to close) after I have called ICube_Stop.
Thanks
DAveHi Dave,
The "Run In UI Thread" switches from the thread the VIs currently executing in to the user interface thread. If you select "Run in Any Thread", the Call Library Function Node continues in the currently executing thread. By default, all Call Library Function Nodes run in the User Interface thread.
Before you configure the Call Library Function Node to run in any thread, you have to make sure that the code is thread safe. Code is thread safe when it does not store any global data (e.g. global variables, files on disks, etc.), does not access any hardware, does not make calls to any functions, libraries or drivers that are not thread safe.
Unfortunately, since you said that your DLL accesses hardware, it is not recommended to use "Run in Any Thread." This is probably why you are seeing the crash.
If your preview window gets sent to the back you can programmatically bring it forward. Here is an example of how this can be done: http://decibel.ni.com/content/docs/DOC-4551
If you want to completely close the window down you can do so as described in this link: http://digital.ni.com/public.nsf/allkb/81E9C1441900FFCE8625748F0055DBB0?OpenDocument
I also thought you might find this useful: http://zone.ni.com/devzone/cda/tut/p/id/3009
I hope this helps.
Regards,
Mahdieh G
Applications Engineer
National Instruments UK&Ireland -
I am trying to read a text box from a programme running at the same time as my Labview application using calls to the Windows
User32.dll. I believe I need to find the window handle for the 'form' containing this text string and use this together with
various other defined input variables to access the sting.
I have no experience of using this 'Call Library Function Node', but have an understanding of the 'C' programming language. Does anyone have
example Labview code showing how this might be done.
ThanksIf you're trying to access information that's being displayed in the window of another application and that application has no ActiveX interface, then yes, Windows calls can be used. There's a very good example on calling DLLs that ship with LabVIEW. Open the Example Finder (Help->Find Examples) and switch to the Search tab. Enter "Call" in the search box and open the VI "Call DLL". Run the VI, select any of the examples, and click the "Open Example VI..." button. That shows you how to call a DLL.
Now, given that you have no experience in calling DLLs, have only an "understanding" of C (which to me means you have never written something like a DLL), and don't seem to know that much about what Windows functions you may need, you're going to find this route pretty difficult, especially since you have to deal with Windows API calls, which are not always that easy to do from LabVIEW.
Let me propose an alternate solution. Go over to http://www.autoitscript.com/autoit3/ and download AutoIt. This is an automation tool that allows you to automate just about anything you want. It has an ActiveX interface that you can call from LabVIEW. I've attached an example VI that shows you how to use it to get the value of a text box from one of the tabs in the computer "System Properties" control panel applet.
Attachments:
AutoIt Example (v7).vi 25 KB -
PDA: Calling library functions - seems to link the stubbed .cpp file instead of the DLL
I'm having trouble developing a Lab View PDA module that calls a DLL built using Visual C++. The DLL functions correctly when called in a non-PDA VI. My issues seem to be with porting to the PDA.
My configuration:
- Lab View 8.5 with the PDA 8.5 module
- Visual Studio 8.0 with the Windows Mobile 6.0 SDK
- ASUS 626 PDA with an Intel PXA70 procesor running Windows Mobile 6 Classic
Following the PPCBatt example code provided with the PDA module, I have:
- used extern "C" to prevent name mangling
- placed the DLL built with the Windows Mobile SDK in the \Windows directory on the PDA
- created a stub Win32 DLL and lib
- created a stubbed cpp file whose functions only return zero
- included the stubbed cpp and lib files in the build spec / source files / additional files
- placed Call Library Function nodes on my PDA VI, selected the function names, set the parameter types
- built and deployed the executable, both with and without debug
When I set the library path property of the Call Library Node, the functions appeared in the function name pulldown, but the parameters did not populate. I had to manually add them and set their types. The help page says they would autopopulate when the function was selected.
I've debugged the VI, and the Library Function Call nodes are being called. It seems the build is linking the code from the stub C file provided in the additional files portion of the source files property page, instead of adding hooks to call the DLL on the PDA. As a test, I changed an output parameter in one of the functions in the stubbed cpp file - the changed value showed in the front panel indicator.
What am I doing wrong?
DanHi Dan,
I'm not sure if I understood you problem fully. When calling external code with LabVIEW PDA, the DLL acts as a stub DLL with the correct function prototypes for the C code that you want to call. Here's a Knowledge Base article that might help explain about calling External Code in LabVIEW PDA.
Regards,
Stanley Hu
National Instruments
Applications Engineering
http://www.ni.com/support -
Call Library Function (DLL) Node Configuration
This issue was discussed few times on this forum (see for example http://forums.ni.com/ni/board/message?board.id=170&message.id=182911 ), but I still have a problem.
My question is - how to define the call to DLL without to specify its full path in order to be able to change the directory path without to change all calls to DLL functions within VI.
So, I did:
1. I put my DLL and my VI in the same directory.
2. I defined this directory in VI search path. This directory also defined as enviroment variable.
3. I use only one call to DLL in this specific VI (just as example in order to simplify the problem).
4. I define only DLL name without the path in CLF Node.
But, every time when I close CLF Node configution window, the program search for the DLL, find it and put full DLL path inside.
I will be very thankful if anyone can help me to overcome this problem.
Best regards,
BorisHello Boris,
To sum up the previous posts, when you specify the DLL when configuring the Call Library Function
node, internally LabVIEW stores in the VI either 1) the name of the
DLL, or 2) a relative path from the VI to the DLL (including the name
of the DLL). What's displayed in the dialog (in 'Library Name or Path'
field) is either 1) the name of the DLL, or 2) an absolute path that is
formed by appending the DLL's relative path to the VI's absolute path.
In
case 1, LabVIEW uses the Windows system search paths to load the DLL.
That is, it looks for the DLL in \windows\system32 folder, then if not
found there, it uses the folders specified in the PATH environment
variable, etc.
In case 2, LabVIEW tries to load the DLL from the
computed absolute path (VIs current path combined with the relative
path to the DLL that LabVIEW stored internally). And if not found
there, LabVIEW uses the VI Search Path (that can be set from Tools »
Options in the category of Paths).
So even though LabVIEW automatically puts an absolute path to the DLL
in the Call Library Function Node, as long as you will specify the
correct folder for the DLL in the VI Search Path, you should be Ok. However, if you want to
have a fixed location for the DLL, then it is best to keep it in the
\windows\system32 folder, and specify just the name of the DLL when
configuring the Load Library Function node (this way LabVIEW will not
automatically turn it into an absolute path).
Also, these knowledge base articles might be helpful:
Why Does My VI Prompt for My DLL Every Time I Open It?
LabVIEW Searching for a DLL Used in the Call Library Function Node
My Stand-Alone Executable Cannot Find My DLL, Even Though I Have Specified the Path for the DLL
Hope this helps and good luck with your application!
Shakhina P.
NIC -
With using any version of iTunes, whenever I import songs into my library using the "add to library" function, iTunes adds those songs in songs' alphabetical order. This is pretty annoying since it does not preserve the logical track number or even the album sort order (for example when adding 2 albums stored in a unique folder). Anyone has any ideas ? Been stumped for a while....!!!
hi i had the same problem today when i updated my itunes to latest version. however, i have just found my songs in the 'itunes media' folder. this was accessed through 'my music' then keep clicking through until you find itunes media and all my library songs were in there and i then just added these files to my library and all were restored however, i have lost all my playlists but at least my 700 songs are back. very dissapointed with apple that they have let this happen with their latest update, the previous version was miles better than this one . hope you find them. stevo
-
How to implement a callback function using LabView's Call Library Function Node?
I am trying to call a fuction from a SDK.dll library using the Call Library Function Node. The SDK was provided to
me and I do not have the source code, just the .dll and .h files.
The SdkSetPropertyEventHandler function has a callback fuction as one of its parameters. How do I implement the
callback using the CLF node? I am a good LabView programmer but this is my first time using the Call Library
Function Node. I have read all the info I can find on NI's web site and the discussion board but cannot figure
this one out. I am using LabView 8.6.
The SDK.h deacribes the function as:
// Function: SdkSetPropertyEventHandler
SdkError SDKAPI SdkSetPropertyEventHandler(
SdkCameraRef inCameraRef,
SdkPropertyEvent inEvnet,
SdkPropertyEventHandler inPropertyEventHandler,
SdkVoid* inContext );
// Description:
// Registers a callback function for receiving status
// change notification events for property states on a camera.
// Parameters:
// In: inCameraRef - Designate the camera object.
// inEvent - Designate one or all events to be supplemented.
// inPropertyEventHandler - Designate the pointer to the callback
// function for receiving property-related camera events.
// inContext - Designate application information to be passed by
// means of the callback function. Any data needed for
// your application can be passed.
// Out: None
// Returns: Any of the sdk errors.
A separate header file called SDKTypes.h contains the following data:
typedef SdkUInt32 SdkPropertyEvent;
typedef SdkUInt32 SdkPropertyID;
typedef void SdkVoid;
typedef struct __SdkObject* SdkBaseRef;
typedef SdkBaseRef SdkCameraRef;
SdkPropertyEventHandler
typedef SdkError ( SDKCALLBACK *SdkPropertyEventHandler )(
SdkPropertyEvent inEvent,
SdkPropertyID inPropertyID,
SdkUInt32 inParam,
SdkVoid * inContext );
Thanks for your help.
Alejandro
Solved!
Go to Solution.alejandroandreatta wrote:
I am trying to call a fuction from a SDK.dll library using the Call Library Function Node. The SDK was provided to
me and I do not have the source code, just the .dll and .h files.
The SdkSetPropertyEventHandler function has a callback fuction as one of its parameters. How do I implement the
callback using the CLF node? I am a good LabView programmer but this is my first time using the Call Library
Function Node. I have read all the info I can find on NI's web site and the discussion board but cannot figure
this one out. I am using LabView 8.6.
Basically you do not do that. LabVIEW does not know pointers and certainly not function pointers. What you should do instead is writing a C DLL that implements the callback and also exports a function to be called by LabVIEW that translates between the callback and a LabVIEW user event. Look for PostLVUserEvent() here on the NI site to find examples how to do that.
Rolf Kalbermatter
Message Edited by rolfk on 02-11-2009 08:00 PM
Rolf Kalbermatter
CIT Engineering Netherlands
a division of Test & Measurement Solutions -
Strange problem of calling library function node in labview 2010 and 2011
one year ago,I develop a program to usb device data and it works well,in labview 8.6 or 2009(win xp).Recently, When I test
the program in labview 2010 and labview 2011(win xp).,the program always crash immediately.I check the program and find main
problem is in call library function node. In my program,I use labview 2009 library for the USBExpress driver for
Silicon Labs USB MCU's from:https://decibel.ni.com/content/docs/DOC-9522,for example, 2 functions SI_OPEN and SI_READ
can not work well.
the header definition of SI_OPEN and SI_READ is:
SI_STATUS WINAPI SI_Open(
DWORD dwDevice,
HANDLE* cyHandle
SI_STATUS WINAPI SI_Read(
HANDLE cyHandle,
LPVOID lpBuffer,
DWORD dwBytesToRead,
LPDWORD lpdwBytesReturned,
OVERLAPPED* o = NULL
the SI_STATUS is equivalent to int type.
orignally, for HANDLE * in SI_Open, the parameter type in call library function node is numeric, data format is unsigned 32 bit integer ,and pass pointer to value.
for HANDLE in SI_Read, the parameter type in call library function node is numeric, data format is unsigned 32 bit integer ,and pass value.The program works well in labview 8.6&2009,however,crash in labview 2010 &2011.
later,I debug the program, for HANDLE *, I choose parameter type in call library function node as adapt to type, data format is point to Handles.for HANDLE, I choose parameter type in call library function node as adapt to type, data format is Handles by Value.Crash not happend in labview 2010&2011,however,it cannot read any data from from USB device correctly as before.I can not find the reason.
Dear friends,I need your help to answer the problem. Thank you.Based on the help page it looks like it should execute asynchronously.
The thing in the description that leads me to believe they execute asynchronously is that you can configure the library to run as a multi-threaded operation.
Please take a look here to see the difference between synchronous and asynchronous execution.
Since the code even has the ability to be multi-threaded, you can consider it as running in parallel to your other code.
Any data returned is passed to the thread that called that function.
Cory K
Maybe you are looking for
-
Where did my cursor go when I was surfing the web?
My cursor disappeared when I was surfing two different sites today. My only solution was to power off and reboot. [My touchpad is not turned off.] Is this a problem that has an easier solution or is this a technical problem that needs fixing by HP/Co
-
I've hit erase all content and settings and my Ipod has a screen with the apple logo and a bar underneath. At first the process seemed to have been moving along, but now it seems to be stuck with about 75% of the bar colored in. It has been about 4 h
-
How to configure TREX so it does not include title in the index created
Hi all Can someone tell me where I can find the TREX configuration that disables the indexing of the html title. If I for instance want to index www.sap.com, and I do not want the title = "SAP - Business Software Solutions Applications and Services"
-
Custom Skin: css of new skin in CRMCMP_IC_FRAME not loaded with changes
Hi all, I have a quite frustrating issue. In accordance to SAP Note 1151944 - Skin Customizing not reflected in IC business roles I have created a new folder in the MIME's repository for my skin called default_agfa. the new css files have been added
-
I just recently bought the iPhone 5 and updated to the newest version of iTunes and I cannot make the ring"tones" tab appear. I even went to preferences and clicked on the "tones" button so that the "tones" tab would appear, and it won't appear. I re