C# .NET4.0 で MFC C++ COM アドインを VSTO Excel アドインに変換しています。その中には、C API を参照するコードがたくさんあります。ここに例があります。変換タスクを簡素化するために Excel DNA を使用する可能性があります。
参考: xlr は XLSDK のクラスです。
//allocate local storage for the reference
m_pControllerReference = new xlr( controllerRange ) ;
//get the name of the book and sheet with the reference
g->Excel.fn( xlSheetNm, *m_pControllerReference ) ;
if ( g->Excel.resultXltype() != xltypeErr )
{
m_referenceSheetName = g->Excel.resultCString() ;
// and get the sheet ID
g->Excel.fn( xlSheetId, xl(m_referenceSheetName) ) ;
if ( g->Excel.resultXltype() != xltypeErr )
{
m_controllerSheetId = g->Excel.resultSheetId() ;
xlr theRange( m_pControllerReference->GetLPXLOPER(),
0, TRUE ) ;
if(theRange.nRows() >6)
........etc
これはこのように変換されますか?
m_pControllerReference = (Excel.Range)controllerRange;
m_referenceSheetName =
(string)XlCall.Excel(XlCall.xlSheetNm, m_pControllerReference );
m_controllerSheetId = XlCall.Excel(XlCall.xlSheetId,
m_referenceSheetName); // and get the sheet ID
//how to convert this ?
//xlr theRange( m_pControllerReference->GetLPXLOPER(),
0, TRUE ) ;
または、サードパーティのユーティリティに頼らずに変換するより良い方法はありますか? VSTO ですべてを実行できますか? C API から C# への変換のチャートはありますか?