How can I call Range::Find from C++ without crashing Excel?
First of all for all the optional parameters that you don't use pass
vtMissing.
pRangeSearch-Find("MKV", vtMissing ...
Then make sure all the smart pointers wrap a valid interface pointer. You
should
always do something like this:
Excel::_WorksheetPtr pWorksheet = Wb-Sheets-Item[1];
ATLASSERT(pWorksheet != 0); // if called from atl code
Where do you use the given code? Could there be an issue with the calling
convention?
"Aaron Queenan" wrote in message
...
I can call Range::Find from VBA - it works correctly, and requires only
one
argument.
When I call it from C++, the function either throws an exception, or
causes
a "Stack Corruption" error.
I am calling it with the following syntax:
Excel::_WorksheetPtr pWorksheet = Wb-Sheets-Item[1];
Excel::RangePtr pRangeSearch = pWorksheet-Cells;
Excel::RangePtr pRangeCurrent = pRangeSearch-Find("MKV",
_variant_t(),
_variant_t(),
_variant_t(), _variant_t(), Excel::xlNext, _variant_t(),
_variant_t());
Is there anything I'm doing wrong?
Thanks,
Aaron Queenan.
|