步驟:
1.初始化
2.打開Source Marager TwRC rc = DSMparent(appid, IntPtr.Zero, TwDG.Control, TwDAT.Parent, TwMSG.OpenDSM, ref hwndp);
3.選擇默認的掃描儀 rc = DSMident(appid, IntPtr.Zero, TwDG.Control, TwDAT.Identity, TwMSG.GetDefault, srcds)
4.打開source rc = DSMident(appid, IntPtr.Zero, TwDG.Control, TwDAT.Identity, TwMSG.OpenDS, srcds);
5.....
6.關閉 source rc = DSMident(appid, IntPtr.Zero, TwDG.Control, TwDAT.Identity, TwMSG.CloseDS, srcds);
7.關閉Source Marager rc = DSMparent(appid, IntPtr.Zero, TwDG.Control, TwDAT.Parent, TwMSG.CloseDSM, ref hwnd);
就是在第6步的時候 報錯,“提示 嘗試讀取或寫入受保護的記憶體。這通常指示其他記憶體已損壞。”。各個大佬們 幫忙看看 分析分析什么原因
uj5u.com熱心網友回復:
頂起來,不能沉uj5u.com熱心網友回復:
頂起來,不能沉啊啊 啊uj5u.com熱心網友回復:
判斷一下rc結果
TwUserInterface guif = new TwUserInterface();
rc = DSuserif(appid, srcds, TwDG.Control, TwDAT.UserInterface, TwMSG.DisableDS, guif);
if (rc == TwRC.Success)
{
rc = DSMident(appid, IntPtr.Zero, TwDG.Control, TwDAT.Identity, TwMSG.CloseDS, srcds);
}
uj5u.com熱心網友回復:
相機或者掃描儀重新連接下,不行就重新啟動一下。uj5u.com熱心網友回復:
創建一個物件,不要一直new新物件。這個物件用的,你new又關閉。uj5u.com熱心網友回復:
可惜,當時我用java開發的。愛莫能助啊。
uj5u.com熱心網友回復:
我分享一下,java版本的。希望對你有用。
https://blog.csdn.net/hanjun0612/article/details/99682621
uj5u.com熱心網友回復:
呼叫非托管代碼需要注意GC,尤其是有回呼方法的呼叫。所以一個能解決問題的經驗方法(不一定是標準回答,但能解決問題)那就是回呼和呼叫規定都寫成靜態static,這樣不會因為gc釋放造成指標飛掉的情況。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/22800.html
標籤:C#
上一篇:WPF CefSharp 爬蟲
