2011-01-10 65 views
1

我有一個託管C++相當於C#空在託管C++

bool Test::TestStringNumber(String^ testData) 
{ 
    int len = testData->Length; 
    if(len > 0) return true; 
} 

正在使用相同的函數的C#

void Main() 
{ 
    Test t = new Test() 
    t.TestStringNumber(null); 
} 

但應用程序崩潰對象。調試我用C觀察期間++它作爲「未定義的值」

此外,我試圖與在C++代碼nullptr測試TESTDATA,並用於下面的代碼,但仍相同碰撞

if(testData == nullptr && String::IsNullOrEmpty(testData)) 

*的一種方法是在C++託管代碼中捕獲異常並返回;

+0

你確定問題不是簡單的在C++中調用` - > Length`之前不檢查`null`嗎? – 2011-01-10 06:40:47

回答

6
bool Test::TestStringNumber(String^ testData) 
{ 
    return !String::IsNullOrEmpty(testData); 
} 

應該工作得很好嗎?不是我看到你的代碼中的重點?