Undefined function or variable 'fid' , but 'fid' isn't in any of the script files
7 次查看(过去 30 天)
显示 更早的评论
Have created a Matlab generated DLL that is called from a Visual Studio 2010 C++ application. There are 4 M files (written by an ex co-worker 10 years ago) that are compiled for the DLL ; there is no variable or function named 'fid' in any of them. At run time, I catch a mwException after the call to the DLL, and the exception.what() shows "Undefined function or variable 'fid' ".
I'm sorry that I can't show the M files (it's proprietary code in a competitive market) but 'fid' is not in any of them, or even in the C++ application itself.
Not much to go on, I'm afraid - I was just hoping that somebody might have a suggestion for someone new to Matlab. Thanks.
0 个评论
回答(2 个)
C.J. Harris
2011-8-16
The variable 'fid' is usually associated with file reading. You might want to start your search at those points in the code where you either open or close an external file (such as a txt/dat file).
Walter Roberson
2011-8-16
Possibly "fid" is being constructed as a variable name and used in an eval() or feval() statement.
If .fig files are involved somewhere, the reference to "fid" could be buried in some property of a graphic, such as a callback.
The error message you see would be consistent with the possibility that some routine with a parameter named "fig" is being passed too few arguments.
Does diary() work in DLL's, I wonder?
6 个评论
Walter Roberson
2011-8-17
Whether or not the compiler generated code for the "if 0" section, it would never _execute_ that code, so nothing in that code could have an effect.
I think what I would suggest at this point is to use the dependency analysis tool, and read through the results carefully looking for calls to routines you do not expect to be called, such as calls to something in a local library where you are expecting the MATLAB library to be called instead.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!