-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
429 lines (364 loc) · 31.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
<!DOCTYPE html>
<html>
<head>
<title>XLW - A Wrapper for the Excel API</title>
<meta http-equiv='Content-Style-Type' content='text/css' />
<meta name='robots' content='index,follow' />
<link rel='stylesheet' href='xlw.css' type='text/css' />
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" />
<link rel="icon" href="images/favicon.ico" type="image/x-icon" />
</head>
<script>
function mainDisplay(item) {
document.getElementById("homeContent").style.display = "none";
document.getElementById("historyContent").style.display = "none";
document.getElementById("licenseContent").style.display = "none";
document.getElementById(item).style.display = "block";
}
</script>
<body>
<div id='wrapper'>
<div id='head'></div>
<div id='version_string'>Dev Release 20.8.15-DEV9eef</div>
<div id='tagline'>A Wrapper for the Excel API</div>
<div id='content'>
<div id='col-left'>
<!--PageLeftFmt-->
<div id='sidebar'>
<ul>
<li><a href="javascript:void(0)" onclick="mainDisplay('homeContent')">Home</a></li>
<li><a href="https://www.nuget.org/profiles/xlw" >Nuget</a></li>
<li><a href='https://github.com/xlw/xlw'>Project</a></li>
<li><a href="javascript:void(0)" onclick="mainDisplay('licenseContent')">License</a></li>
<li><a href="javascript:void(0)" onclick="mainDisplay('historyContent')">History</a></li>
<li><a href="http://xlw.sourceforge.net/"> XLW at Sourceforge</a></li>
</ul>
</div>
<div class="logolist">
<!-- <div class="vspace"></div>
<a class="imglink" href="http://www.nazcatech.be"><img src="images/nazcatech.jpg" width="88" height="98" border="0" alt="nazcatech"/></a>
<div class="vspace"></div>
<a class="imglink" href="http://sourceforge.net"><img src="http://sflogo.sourceforge.net/sflogo.php?group_id=45222&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo"/></a>
-->
</div>
<!--/PageLeftFmt-->
</div>
<div id='col-right'>
<!--PageText-->
<div id='wikitext'>
<div style='text-align: justify;'>
<div style="margin-left:5px" id="navcontainer">
<table width=600>
<tr>
<td>
</td>
</tr>
</table>
</div>
<div id="homeContent" style="display: block;">
<h2>XLW - A Wrapper for the Excel API </h2>
<p>XLW is an <a href="license.shtml"><span class="bold">open source</span></a> application that wraps the Excel C API in simple C++ and C# interfaces which you can use to customize Excel with your own worksheet functions and menu items.</p>
<p>XLW developers include Financial Engineering practitioners with extensive experience of developing quantitative analytics in the finance industry including <a href="https://fbe.unimelb.edu.au/newsroom/obituary-for-professor-mark-joshi" target="_blank">Mark Joshi</a> the author of <a href="http://www.markjoshi.com/concepts/index.htm" target="_blank">The Concepts and Practice of Mathematical Finance</a> and <a href="http://www.markjoshi.com/design/index.htm" target="_blank">C++ Design Patterns and Derivatives Pricing</a>.</p>
<br />
<br />
<p>
The project's interface generation system seamlessly parses your C++ header files ...
<div class="fragment">
<pre class="fragment">
<span class="comment">// Test.h</span>
<span class="preprocessor">#ifndef TEST_H</span>
<span class="preprocessor">#define TEST_H</span>
<span class="comment">//<xlw:libraryname=MyTestLibrary</span>
std::wstring <span class="comment">// Concatenate two strings</span>
<span class="comment">//<xlw:time</span>
Concat(std::wstring str1, <span class="comment">// First string</span>
std::wstring str2); <span class="comment">// Second string</span>
<span class="keyword">double</span> <span class="comment">// Compute the circumference of a circle</span>
<span class="comment">//<xlw:time</span>
Circ(<span class="keyword">double</span> Diameter); <span class="comment">// The circle's diameter</span>
<span class="preprocessor">#endif</span>
</pre>
</div>
... and your C# ...
<div class="fragment">
<pre class="fragment">
<span class="namespace">namespace</span> Example
{
public <span class="class">class</span> Class1
{
[<span class="attribute">ExcelExport</span>(<span class="comment">"computes the circumference of a circle "</span>)]
<span class="keyword">public static</span> <span class="keyword">double</span> Circ(
[<span class="attribute">Parameter</span>(<span class="comment">"the circle's diameter"</span>)] <span class="keyword">double</span> Diameter)
{
<span class="keyword">return</span> Diameter * 3.14159;
}
[<span class="attribute">ExcelExport</span>(<span class="comment">"Concatenates two strings"</span>)]
<span class="keyword">public static</span> <span class="keyword">string</span> Concat(
[<span class="attribute">Parameter</span>(<span class="comment">"first string"</span>)] <span class="keyword">string</span> str1,
[<span class="attribute">Parameter</span>(<span class="comment">"second string"</span>)] <span class="keyword">string</span> str2)
{
<span class="keyword">return</span> str1+str2;
}
}
}
</pre>
</div>
</p>
<p>...to automatically generate the corresponding XLW Excel addin (xll).</p>
<div id="screenshot"><img src="images/screenshot.jpg" alt="screenshot" width=371 height=312 /></div>
<div style="margin-left:10px">
</div>
</div>
<div id="licenseContent" style="display: none;">
<h2>Copyright</h2>
<p>XLW is</p>
<div class="box">
<p>Copyright © 1998, 1999, 2001, 2002, 2003, 2004 Jérôme Lecomte</p>
<p>Copyright © 2002, 2003, 2004 Ferdinando Ametrano</p>
<p>Copyright © 2002, 2003, 2004 José Fonseca</p>
<p>Copyright © 2006 Mark Joshi</p>
<p>Copyright © 2007 Tim Brunne</p>
<p>Copyright © 2007, 2008 Eric Ehlers</p>
<p>Copyright © 2008, 2009 2020 Narinder S Claire</p>
<p>Copyright © 2011 John Adcock</p>
<p>All rights reserved.</p>
</div>
<h2>License</h2>
<p>XLW is released under the modified BSD license.</p>
<div class="box">
<p>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
</p>
<br />
<p>
<ul>
<li>Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</li>
<li>Neither the names of the copyright holders nor the names of the XLW Group and its contributors may be used to endorse or promote products derived from this software without specific prior written permission.</li>
</ul>
</p>
<br />
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
</div>
</div>
<div id="historyContent" style="display: none;">
<h3> <a href="https://github.com/xlw/xlw">Github</a> - 18 July 2020 </h3>
XLW Dev restarted on Github. All future released planned to be nuget packages.<br/>
Older versions of XLW will remain downloadable from Sourceforge.
<h3>Release 5.0.2 - 13 December 2014</h3>
<ul>
<li>Added support for Visual Studio 2013</li>
</ul>
<h3>Release 5.0 Final - 4 February 2013</h3>
<ul>
<li>Version 5.0.0 finally released, after a very length alpha process fixing numerous bugs</li>
<li>Added support for Excel 2010</li>
<li>Added support for 64 bit addins</li>
<li>Added support for Visual Studio 2010 and 2012</li>
<li>Added support for auto-generated help for addins using Sandcastle</li>
<li>Richer set of example and improved documentation</li>
</ul>
<h3>Release 4.0 Final - 24 September 2009</h3>
<ul>
<li>Version 4.0.0 finally released, after 11 months in development</li>
</ul>
<h3>50,000 Downloads - 13 September 2009</h3>
<ul>
<li> On Sunday, 13th September 2009, the total number of downloads from XLW's project page on Sourceforge hits 50,000</li>
<li> The month of September 2009 saw the second highest number of downloads in 7 years of XLW being hosted on Sourceforge, second only to September 2005
</li>
</ul>
<h3>Release 4.0 Beta 2 - 16 August 2009</h3>
<ul>
<li>Extended for .NET to allow implementing od worksheet functions in C# and VB.NET</li>
<li>New installer able to detect supported installed development environments</li>
<li>Template projects added to allow easy creation of new XLL projects</li>
<li>Support added for the Code::Blocks IDE (MinGW) </li>
<li>Upgrade MinGW dependency to GCC4.4.0</li>
</ul>
<h3>Release 3.0 Final - 11 May 2008</h3>
<ul>
<li>Extend class XLFunctionRegistrationHelper to allow function return type default value (XlfOper) to be overridden</li>
<li>Update the handwritten example to use XLFunctionRegistrationHelper instead of XlfArgDesc/XlfFuncDesc</li>
</ul>
<h3>Release 3.0 Beta - 14 April 2008</h3>
<ul>
<li>Introduce support for Excel 2007, including the XLOPER12 datatype, multithreaded worksheet functions, UNICODE strings, long strings, and larger spreadsheets</li>
<li>Class XlfOper wraps either XLOPER or XLOPER12 depending on version of Excel detected at startup</li>
<li>Classes XlfOper4 and XlfOper12 specifically wrap XLOPER or XLOPER12 respectively, avoiding performance overhead incurred by class XlfOper</li>
<li>Ensure thread safety as required to support multithreaded worksheet functions under Excel 2007 - introduce new mutex class for this purpose - new tag <xlw:threadsafe for InterfaceGenerator</li>
<li>Represent Excel parameter type codes as std::string rather than char, because Excel 2007 introduces codes comprising multiple characters</li>
<li>Extend the support for datatypes to allow function inputs of type XlfOper to be registered with Excel as either P/R (OPER/XLOPER) or Q/U (OPER12/XLOPER12)</li>
<li>Add support for boost matrix class (thanks to Tim Brunne)</li>
<li>Introduce support for sheet-level references (xltypeSRef)</li>
<li>Extend support for arrays (xltypeMulti). An explanation of the new interface is included in the documentation for the XlfOper class.</li>
<li>Implement routine to unregister functions from Excel - this uses a technique published by Laurent Longre to work around a bug in the Excel C API</li>
<li>Put all classes in new namespace xlw</li>
<li>Store string length in a variable of type unsigned char (BYTE) rather than int, to fix a problem in which strings longer than 128 bytes were processed incorrectly</li>
<li>Implement workaround for Excel bug in which parameter descriptions are corrupted in Function Wizard</li>
<li>Multiple minor bug fixes</li>
<li>Implement new VC NMAKE project RunInterfaceGenerator to detect changes in the inputs to InterfaceGenerator and rerun the utility as necessary</li>
<li>Reintroduce the example application that accompanied XLW version 1</li>
<li>Drop support for VC6, introduce support for VC9, update support for VC7, VC8, and Dev C++</li>
<li>Update documentation, fix broken links, reorganize website</li>
</ul>
<h3>Release 2.1 - 22 April 2007</h3>
<ul>
<li>Calculate elapsed run time for functions. <xlw:time command for InterfaceGenerator.</li>
<li>Support for empty argument lists.</li>
<li>Extended support for types other than XLOPER, e.g. K for matrix of doubles.</li>
<li>Bugfixes, updates to documentation and examples</li>
</ul>
<h3>Release 2.0 - 18 December 2006</h3>
<p>This is an extension to the XLW project by Jérôme Lecomte. Changes are copyright © 2006 Mark Joshi with the same licence as for the original XLW. Major new features:</p><br />
<ul>
<li>Automatic generation of interface file.</li>
<li>Registration code done at point of function declaration.</li>
<li>Improved error catching, strings, const char* and run_time errors used to pass strings back to excel containing an error message.</li>
<li>Conversions from XlfOper routines throw strings identifying the bad argument.</li>
<li>XlfOpers adapted to work with data types CellMatrix and MyMatrix for both input and output. CellMatrix allows each cell to be of type string, number, boolean or error, or empty.</li>
<li>Works with Visual Studio 6, 7, and 8 and DevCpp 4.9.9.2, project files included.</li>
<li>Ability to add type registrations.</li>
</ul>
<h3>Release 1.2.2 - 7 March 2003</h3>
<ul>
<li>xlwExample/xlwExample.xls: Added recalcPolicy to let user register function as volatile (unconditionally recalculated). Note that default is still not volatile</li>
<li>TODO.txt: fixed since 1.2</li>
<li>xlw.dsp: english version of the dsp</li>
<li>xlwExample/xlwExample.vcproj: libXLL added</li>
<li>xlwExample/xlwExample.mak: updated version number</li>
<li>xlwExample/xlwExample.cpp: Merged update made for R010200f0</li>
<li>xlw/XlfOper.cpp: Removed PORT_USING(std) in header. Various documentation fixes</li>
<li>Docs/images/doxygen.png: Fixed file corruption due to ascii manipulation</li>
<li>Docs/xlwfooter.html: better proportions</li>
<li>xlw/XlfExcel.h: Removed reference to log and ofstream</li>
<li>xlw/EXCEL32_API.h: Updated version number to 010200f0</li>
<li>Docs/pages/install.txt: Updated doc for new download link, new features and updated xlwExample.cpp</li>
<li>ChangeLog.txt: Mainly documentation fixes</li>
<li>Docs/images/doxygen.png: Added doxygen logo</li>
<li>Docs/pages/history.txt: Updated</li>
<li>Docs/xlwfooter.html: Merged last minute changes that were made to HEAD</li>
<li>Docs/xlwfooter.html: Now points to images directory. Refences new doxygen.png</li>
<li>xlwExample/xlwExample.dsp: Copies xll and debug information to the $BIN directory (assumed to be defined)</li>
<li>xlw.dsw: Dependency flag helps in OnTheEdge build and does not hurt for other builds</li>
<li>xlw/EXCEL32_API.h: Update for release 1.2.0a</li>
<li>xlw/XlfOper.inl: Simplified interface: ConvertToXXX is now private, AsXXX now takes an int to store the error code. If the pointer is null an exception is thrown</li>
<li>xlw/XlfOper.h: Moved test for auxiliary memory from XlfOper to XlfExcel. Cleaned up</li>
<li>xlw/XlfExcel.h: Added IsCalledByFuncWiz</li>
<li>xlwExample/xlwExample.xls: Added IsInWiz to demonstrate XlfExcel::IsCalledByFuncWiz</li>
<li>xlwExample/xlwExample.cpp: Amended IsInWiz to demonstrate how to retrieve the caller cell</li>
<li>xlw/XlfOper.cpp: Fixed memory leak thanks to Ale</li>
<li>xlw/XlfOper.h: Fixed deletion of MS Excel data</li>
<li>xlw/macros.h: Moved static error OPER constructor to XlfOper</li>
<li>xlw/XlfOper.inl: Added ThrowOnError and Error. Added documentation</li>
<li>xlw/XlfExcel.inl: Moved ThrowOnError to XlfOper. Made XlfBuffer private. Got rid of XlfExcelDestroyer (use xlAutoClose instead) and IsInitialize Added documentation</li>
<li>xlw/XlfOper.h: Fixed big memory leak (forgot it in previous version's log). Got rid of unneeded boolean parameter</li>
<li>xlwExample/xlwExample.cpp: Fixed small memory leak</li>
<li>xlwExample/xlwExample.cpp: Simplified Stats function to take advantage of AsDoubleVector</li>
<li>xlw/XlfOper.h: Added policy argument to AsDoubleVector and ConvertToDoubleVector. Defaults is to generate an error if the range is not 1d</li>
<li>xlwExample/xlwExample.xls: added "what's changed"</li>
<li>xlw.nsi: removed Borland distribution</li>
<li>xlwExample/xlwExample.mak: makefile updated</li>
<li>xlw/XlfOper.h: Added (should be) throw free ConvertToDoubleVector. Updated logging to use std::cerr</li>
<li>xlwExample/xlwExample.cpp: Updated logging to use std::cerr. Uses std::vector instead of double[]</li>
<li>xlwExample/Win32StreamBuf.inl: Updated logging to use std::cerr</li>
<li>xlw/XlfExcel.inl: Made allocation engine more intelligent. Updated logging to use std::cerr and removed old logging methods (did not work)</li>
<li>xlw.dsp: Removed ERR_Macros.h</li>
<li>xlwExample/xlwExample.dsp: Added Win32StreamBuf</li>
<li>xlw/XlfOper.h: added XlfOper.AsDoubleVector()</li>
<li>xlw/XlfOper.h: When buffer is full, don't throw any exception, sets lpxloper_ to 0 instead. Changed other method to check for xloper_</li>
<li>xlw/XlfRef.h: Documention change</li>
<li>xlwExample/xlwExample.cpp: Reverted to v.1.3 The FreeMemory calls should not be necessary</li>
<li>xlw/XlfRef.inl: Changed XlfRef implementation to handle ranges in external sheets</li>
<li>xlw/XlfOper.cpp: Added XlfOper::ConvertToXXX (to be exception free)</li>
<li>xlw/XlfExcel.h: Changed buffer default size to 65K. Moved xlret error handling to ThrowsOnCriticalError.</li>
<li>xlwExample/xlwExample.cpp: Added FreeMemory calls to allow many function registrations</li>
<li>xlw/XlfOper.h: Added (to be) exception free XlfOper::ConvertToXXX functions</li>
<li>xlwExample/xlwExample-mingw32.mak: Jose Fonseca fixes for MINGW32</li>
<li>xlwExample/xlwExample-mingw32.mak: Jose Fonseca fixes for MINGW32</li>
<li>xlw/XlfException.h: Jose Fonseca fixes for MINGW32</li>
<li>xlwExample/xlwExample-mingw32.mak: Jose Fonseca fixes for MINGW32\nthe config.mgw.h file is still missing</li>
<li>xlw/XlfOper.h: Jose Fonseca fixes for MINGW32</li>
<li>xlw/XlfException.h: Jose Fonseca fixes for MINGW32</li>
<li>TODO.txt: adding Jose Fonseca to the contributors list</li>
<li>xlw/port.h: Jose Fonseca fixes for MINGW32\nthe config.mgw.h file is still missing</li>
<li>xlwExample/xlwExample.mak: reversed logic from XLW_NOIMPORTEXPORT to XLW_IMPORTEXPORT</li>
<li>xlwExample/xlwExample.mak: removed project dependencies: they make makefile not portable</li>
<li>xlwExample/makefile.mak: improved parametrization of debug trailing identifier in Borland makefiles</li>
<li>xlw/EXCEL32_API.h: version up to a2</li>
<li>xlwExample/xlwExample.mak: removed dependencies</li>
<li>xlwExample/xlwExample.mak: project setting fixed</li>
<li>xlw.nsi: added Borland support</li>
<li>Docs/makefile.mak: removed winhelp from the all target</li>
<li>xlw/config.msvc.h: excel32 renamed xlw</li>
<li>xlw.nsi: correct version number</li>
<li>test/main.cpp: new license</li>
<li>Docs/pages/misc.txt: modified to have correct PDF output</li>
<li>Docs/pages/excel32.txt: dummy commit</li>
<li>Docs/pages/bibliography.txt: modified for correct PDF output</li>
<li>xlw/xlcall32.h: switched to verbatim BSD license</li>
<li>xlw/macros.h: added default catch (...) {} Temporary removed try/catch from xlAutoOpen()</li>
<li>xlw/config.msvc.h: changed _d into d (degub version of the library)</li>
<li>xlw/xlcall32.h: project restructuring</li>
</ul>
<h3>Release 1.2.0 - 7 July 2002</h3>
<ul>
<li>Buffer is not fixed in size anymore but extend as needed by the functions registered in Excel. Growing policy is still subject to change but it should not impact user interface.</li>
<li>Logging method in XlfExcel have been phased out. All error information now sent to cerr stream. Users can redirect cerr to the console of their choice as demonstrated in xlwExample.</li>
<li>Methods AsXXX() now takes a pointer to an integer which defaults to 0. If an error occurs in the API call, the integer is set to the error code returned by Excel. If the pointer is 0, an exception is thrown.</li>
<li>New AsDoubleVector() return the value in the range in a vector<double>.</double></li>
<li>(BUGFIX) XlfRef correctly handles ranges in a different worksheet than the active one.</li>
<li>Added new method IsCalledByFuncWiz.</li>
<li>XlfExcel singleton does not destroy itself anymore (or did it ever ...). It is recomended to implement xlAutoClose as shown in xlwExample.</li>
</ul>
<h3>Release 1.1 - 11 April 2002</h3>
<ul>
<li>Added nsi file for Win32 installer generation. The installer also set the environment variable XLW_DIR pointing to your xlw installation folder. This way any project based on xlw can add "$(XLW_DIR)" to the "Additional include directory" list and add "$(XLW_DIR)\lib\Win32\VisualStudio\" to the "Additional library path" list.</li>
<li>Renamed library as xlw.lib</li>
<li>Moved sources under xlw folder, and switched to <xlw/xxx.h> inclusion style (library suggested standards, at least by GNU)</li>
<li>Added LICENSE.TXT, NEWS.TXT, AUTHORS.TXT, CONTRIBUTORS.TXT, HISTORY.TXT, ChangeLog.TXT, and README.TXT files in the project root</li>
<li>Moved test file xlwExample.cpp under xlwExample folder</li>
<li>Added config.msvc.h to handle all the MS VC defines. Now as long as you include <xlw/xlw.h>, you won't have to explicitly link your application to xlw.lib. This is automatically done by xlw.h using the pragma statement:</li>
<pre>
#ifdef _DEBUG
#pragma comment(lib,"xlwd.lib")
#else
#pragma comment(lib,"xlw.lib")
#endif
</pre>
<li>Visual Studio setting changed from Multithread to Multithread DLL</li>
<li>Added two VC++ build configurations. The "Win32 OnTheEdgeRelease" and "Win32 OnTheEdgeDebug" configurations are equivalent to "Win32 Release" and "Win32 Debug" respectively, except that they do not use the installed xlw libraries, but look for the *.h, *.inl, and *.lib xlw files in a relative ..\xlw path. This is mainly for xlw developers, to allow them to check the examples without having to install their unstable working version of xlw. The "OnTheEdge" approach may be adopted in projects using xlw, allowing for a quick and easy way to check how the projects work with a new xlw release without having to install it.</li>
<li>Error handling polished in accord to C++ standard</li>
<li>Modified EXCEL32_API.h</li>
<li>Purged port.h of unnecessary defines</li>
<li>Introduced XLW_HEX_VERSION and XLW_VERSION</li>
<li>Added config.bcc.h for Borland CPP defines</li>
<li>Compiled xlw under borland (it doesn't work yet)</li>
<li>The library debug version is called xlwd.lib</li>
<li>xlwExample uses XLW_DIR environment variable to detect xlw installation</li>
<li>xlwExample doesn't link xlw.lib anymore</li>
<li>doxygen.cfg renamed as xlw.doxy, moved under Docs folder, and modified in order to account for the Docs folder</li>
<li>Updated to doxygen 1.2.14</li>
<li>All *.txt documentation pages moved under Docs folder</li>
<li>Added CVS Id tag to all files</li>
</ul>
<h3>Release 1.0 - 28 January 2002</h3>
<p>Initial release by Jérôme Lecomte (xlw@ifrance.com)</p>
</div>
</div>
<hr />
<div id="footer">
All other content <a id="footer-link" href="license.shtml">copyright © 1998-2020 xlw project</a><br />
Graphics by Audrey Schayes and Thomas Wyngaard at <a id="footer-link" href="http://www.codefrisko.be" target="_blank">Codefrisko</a>
</div>
<!--/PageFooterFmt-->
</div>
<div class='clearfix'></div>
</div>
<div class='clearfix'></div>
</div>
<div class='clearfix'></div>
</div>
</body>
</html>