2016/08/30

找不到這些檔案 MSVCP140D.dll, ucrtbased.dll, VCRUNTIME140D.dll ...解法為 用release mode重新編譯, 拿去DUT跑就沒這些問題!

在Visual studio 2015 上面編譯 exe 檔
拿去DUT跑這個exe卻發生 errors : 找不到這些檔案 MSVCP140D.dll, ucrtbased.dll, VCRUNTIME140D.dll …等等

應該是因為我是在 debug mode 作編譯
所以當我執行該Exe檔的時候,他會去使用到一些 debug DLLs 檔案
然後用release mode重新編譯, 拿去DUT跑就沒這些問題!

網路上有個人回應是:

开发机上报找不到这个DLL说明你的Visual Studio安装出错。测试机上报找不到这个DLL说明你的安装脚本写得有问题。最终用户机上报找不到这个DLL说明你没看用户协议(微软禁止你向第三方发布这个测试专用的DLL)。这个DLL只有程序员才用得到,而且程序员基本都知道DLL Hell的危害不会去胡乱去网上下DLL,所以没下载这个需求,网上搜不到资源是正常的。作者:蒋晟链接:https://www.zhihu.com/question/39360390/answer/80965242来源:知乎 

2016/08/25

wordpress文章內實作Google Map嵌入代碼

1. 先作出一份可以重覆使用的代碼, 姑且就叫作 googlemap.php

可以先看這份Google Map 快速指南, 看完至少根據你的需求產生對應的嵌入碼smple

如下例 googlemap.php

<?php  $target = get_post_meta($post->ID, 'MapPoint', $single = true); //會去讀取自定欄位MapPoint的值assign給$target ?><div class="googlemap"> <?php  if ( !empty($target) ) { echo '<iframe width="750" height="500" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/search?q='. $target .'&key=填入你申請的API金鑰" allowfullscreen></iframe>';  } ?> </div>

再到single.php裡面
把 <? include(googlemap.php) ?> 放到 the_content()之後…

可以在wordpress單篇文章內設定:

2. 必須要申請Google Map API 的金鑰(key)

另外一種做法: function.php

這個作法指需要修改function.php即可,
最好能先搞懂什麼是Wordpress的HOOK, 以及the_content()的定義, 還有一些前人的解法

function add_googlemap($content) {  global $post; $target = get_post_meta($post->ID, 'MapPoint', $single = true); $map_str = '<div class="googlemap">'; if ( !empty($target) ) { $map_str .= '<iframe width="750" height="500" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/search?q='. $target .'&key=填入你申請的API金鑰" allowfullscreen></iframe>';  } $map_str .= '</div>';  $content = $content ." ". $map_str ; $map_str = " "; return $content;}add_filter('the_content', 'add_googlemap');

2016/08/18

儲存裝置的資料傳輸技術: IDE,SATA,SCSI

◎ IDE(Integrated Device Electronics)
PATA-Parallel Advanced Technology Attachment (IDE)
一種電腦系統介面,主要用於硬碟和CD-ROM, 它的本意是指把控制器與盤體集成在一起的硬碟驅動器,我們常說的IDE介面,也叫ATA(Advanced Technology Attachment)介面,現在PC機使用的硬碟大多數都是IDE相容的,只需用一根電纜將它們與主板或介面卡連起來就可以了。
把盤體與控制器集成在一起的做法減少了硬碟介面的電纜數目與長度,資料傳輸的可靠性得到了增強,硬碟製造起來變得更容易,因為廠商不需要再擔心自己的硬碟 是否與其他廠商生產的控制器相容,對用戶而言,硬碟安裝起來也更為方便。

ATA 介面發展到今,細分可以分成ATA-1(IDE)、ATA-2(EIDE Enhanced IDE/Fast ATA)、ATA-3(FastATA-2)、Ultra ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100及Serial ATA。
優點:
價格低廉
相容性非常好

缺點:
速度慢(尤其是早期的ATA硬碟)
只能內置使用
對介面電纜的長度有很嚴格的限制

◎ SATA
SATA-Serial Advanced Technology Attachment
是Serial ATA的縮寫,也就是串列ATA。它是一種完全不同於並行ATA(Parallel ATA)的新型硬碟介面類型,因採用串列方式傳輸數據而得名。
SATA匯流排使用了嵌入式時鐘信號,具備了比以往更強的糾錯能力;而且其最大的區別在於能對傳輸指令(不僅是數據)進行檢查,如果發現錯誤會自動矯正,在相當大的程度上提高了數據傳輸的可靠性。串列介面還具有支持熱插拔、結構簡單的優點。
SATA有SATA-1、SATA-2及將推出的SATA-3規格。

◎ SCSI
(英文全稱:Small Computer System Interface; 英文簡寫:SCSI),
是一種用於電腦及其週邊設備之間(硬碟、軟碟機、光碟機、印表機、掃描儀等) 系統級介面的獨立處理器標準。
SCSI標準定義了命令、通訊協定以及實體的電器特性,換成OSI的說法就是佔據了實體層、連結層、通訊層、應用層,最大部份的應用是在儲存設備上像是硬碟、磁帶機,但,其實他可以連接的設備包過有掃描器、光學裝置(像CD、DVD)、印表機……等等,
SCSI命令中有條列出 支援的裝置SCSI週邊裝置,理論上他不可能連接所有的裝置,所以有1Fh – unknown or no device type這個參數存在。

2016/08/08

wordpress文章分類下拉式, 標題重複問題

WordPress側欄工具有一項是, 下拉式文章分類, 但這個小工具有個滿白目的缺點, 就是標題會重覆!

而且這個又不能透過theme的部分去修改, 只好去找源頭!

經檢查,是部分主題下,主題的代碼已經輸出了標題,而wordpress的代碼又再次輸出了一次。

於是我們需要刪除wordpress重複輸出的那部分代碼,

檔案位置是 wp-includes/widgets/class-wp-widget-categories.php

標住起來, 如下:

然後保存即可。

2016/08/04

php mail header設定 - 解決虛擬主機會有漏信的問題

之前幫朋友寫購物網站, 所以需要寄信給客戶以確認帳單, 但卻發現目前的虛擬主機會有漏信的問題, 這些日子以來很多顧客反應沒有收到確認信件, 所以要Debug是程式錯誤還是主機錯誤!

原本語法:

$store_main = "xxxxxxx@yahoo.com.tw"; /* 商家客服信箱 */$headers = "MIME-Version: 1.0rn";$headers .= "Content-type: text/html; charset=utf-8rn";$headers .= "From: ".$store_main."rn";  mail ($email, $subject, $body, $headers);

過一陣子, 我查出基本方向..
只要我有加$headers 就會寄件失敗

mail($to, $subject, $message, $headers); 

拿掉 $headers 就會寄件成功, 但會出現HTML亂碼與一些錯誤資訊

mail($to, $subject, $message, $headers); 

主機商回信:

您好:請將 $headers.= "From: wii遊戲片專賣店rn";裡面的 Email 更改為位於我們主機的 Email例如 service@domainname.com這樣就可以正常發信不會漏信因為您之前使用 xxxxxx@yahoo.com.tw 作為寄信者但是信件卻不是真的從 Yahoo 主機發送出去所以會被 Gmail、Yahoo、Hotmail 等判斷為廣告信而拒收如果還有任何問題隨時歡迎您再來信詢問謝謝

後來改成主機domainname的email
果然就變正常… 感覺是個滿初級的錯誤…..