我已經使用ATL創建了一個COM dll。當我嘗試在非託管C++中使用它時,我發現我得到了一個緩衝區溢出。我目前正在使用一個名爲OnInitIDA()的簡單方法進行測試,並且我所做的所有工作都是一個cout語句並返回。當我運行這個時,返回的HRESULT將是0,但它不會輸出我預期的行。通過使用該步驟並進入調試器的功能,我發現在調用時不是爲OnInitIDA輸入代碼,而是實際上進入了另一種名爲GetInclusionList的方法。一旦我在這個方法中放置了一個語句,並在應用程序運行時,這行就被打印出來了。有沒有人有任何想法爲什麼會調用錯誤的方法?在ATL COM dll中調用錯誤的方法
如果它可以幫助我的代碼已經被張貼在這裏:https://docs.google.com/open?id=0B3ehFEncKJH7ZDgxMGI1YjgtZTE2MS00ZTBkLWI2NzgtYzVhZjUxOWEzZGI0