顯示具有 bug 標籤的文章。 顯示所有文章
顯示具有 bug 標籤的文章。 顯示所有文章

2016年4月22日 星期五

[C++] Visual Studio 遇到ATL Com Crash的問題(解決方案)

在做IMAPI的東西的時候,需要用到CoCOM的東西,

然後他又需要使用ATL....總之很麻煩0rz


好了,重點就是在trace bug的時候跑到atlcom.h這個檔案裡面的

class CComObjectCached : public Base
{
public:
typedef Base _BaseClass;
CComObjectCached(void* = NULL){}
// Set refcount to -(LONG_MAX/2) to protect destruction and
// also catch mismatched Release in debug builds
// This will be made virtual again for Beta 2
/*virtual*/ ~CComObjectCached()
{
m_dwRef = -(LONG_MAX/2);
FinalRelease();
#ifdef _ATL_DEBUG_INTERFACES
_AtlDebugInterfacesModule.DeleteNonAddRefThunk(_GetRawUnknown());
#endif
}
//If InternalAddRef or InternalRelease is undefined then your class
//doesn't derive from CComObjectRoot
STDMETHOD_(ULONG, AddRef)() throw()
{
ULONG l = InternalAddRef();
if (l == 2)
_pAtlModule->Lock();
return l;
}

沒錯,就是_pAtlModule->Lock();這邊,然後你發現他記憶體位址居然是0x000000

然後就crash了!


不要相信甚麼add ATL support to MFC 之類的鬼話(加了以後我不知道怎麼刪掉,只能重寫)

解決方法:

在你的主程式(.cpp)裡面,

#include .......

//在這邊新增
CComModule _Module;
extern __declspec(selectany) CAtlModule* _pAtlModule=&_Module;

//新增完成

主程式:建構子....

主程式.....

這樣就可以解決了

END

2015年5月26日 星期二

[iOS]NSString & EXC_BAD_ACCESS ERROR solution

問題:

使用全域變數NSString *string,使用時候出現exc_BAD_ACCESS???


答案:


@property (nonatomic,retain)NSString *string;

不可以使用assign 要使用retain!


解決!

end

[iOS] Switch Case Error : switch case in protected scope

錯誤代碼:switch case in protected scope

解決方法:

case 1:

{
    code....

}

break;

case 2:

{
   code2....
 
}

break;


解決! end

2015年5月7日 星期四

[iOS] 改變文字顏色,無效?解決方式

在調整UI的時候常常需要改變顏色

可是使用[UIColor colorwithRed:  green: blue: alpha: ]為什麼輸入數值都沒有反應呢?


錯誤示範:[UIColor colorwithRed: 24 green:116 blue:250  alpha:1 ]

正確示範:[UIColor colorWithRed:24.0f/255.0f green:116.0f/255.0f blue:205.0f/255.0f alpha:1.0f];

需要除以255而且他是float喔!

改完以後就會正確顯示顏色了,簡單但是不知道會弄很久的功能!


end

2015年5月6日 星期三

[iOS] Xcode裡面xib檔內的物件改名後產生NSUnknowkeyException的錯誤解決方法

今天在做ios app的時候又發生了一個悲劇....


看到.h檔裡面的英文拼錯,於是就順手改一下...然後就error!!


找了很久以後,才發現錯誤出現在這邊------



看到Referencing Outlets這邊,

這邊是已經修改過的,如果錯誤的話應該會reference到兩個一個是拼錯字的

另一個才是正確的,我們需要把錯誤的按一下連線的那邊有個x,按下去以後就解除reference

這樣錯誤就修改完成囉!


End