Thursday, November 06, 2008

Are you mapping those dlls?

One of the issues with writing cross platform applications is that if you do P/Invoke into a native library, the name of that library changes depending on the OS. Mono has built in support for selecting the right file at runtime. The problem is that it's hard to ensure that you've correctly mapped all the methods you P/Invoke.

So I wrote a little tool to do that for you. It was inspired by an attempt by Aaron Bockover which parsed the raw cs files. I figured it'd be much better to just parse the compiled assembly ;)


using System;
using System.Collections.Generic;
using System.Xml;
using Mono.Cecil;
using System.IO;

namespace DllImportVerifier
{
class MainClass
{
static void Main (string [] args)
{
args = new string [] { Environment.CurrentDirectory };
if (args.Length != 1) {
Console.WriteLine ("You must pass the path to the assemblies to be processed as the argument");
return;
}

List<string> assemblies = new List<string> ();

if (Directory.Exists (args[0])) {
assemblies.AddRange (Directory.GetFiles (args [0], "*.dll"));
assemblies.AddRange (Directory.GetFiles (args [0], "*.exe"));
}
else if (File.Exists (args [0])) {
assemblies.Add (args [0]);
}
else {
Console.WriteLine ("{0} is not a valid file or directory", args [0]);
return;
}

foreach (string assembly in assemblies)
ProcessConfig (assembly);
}

static void ProcessConfig (string assemblyName)
{
AssemblyDefinition assembly = null;
try {
assembly = AssemblyFactory.GetAssembly (assemblyName);
} catch {
Console.WriteLine ("{0} is not a valid .NET assembly", Path.GetFileName (assemblyName));
return;
}

List<string> dlls = new List<string> ();
try {
XmlTextReader doc = new XmlTextReader (assemblyName + ".config");
while (doc.Read ()) {
if (doc.Name != "dllmap")
continue;

string dll = doc.GetAttribute ("dll");
if (!dlls.Contains (dll))
dlls.Add (dll);
}
} catch {
// Ignore malformed or invalid config files. If the config is malformed,
// drop any successfully parsed dll maps
dlls.Clear();
}

List<string> unreferenced = VerifyReferences (assembly, dlls);
foreach (string dll in unreferenced)
Console.WriteLine("Assembly: '{0}' references '{1}' without mapping it", Path.GetFileName (assemblyName), dll);
}

static List<string> VerifyReferences (AssemblyDefinition assembly, List<string> dlls)
{
List<string> unreferenced = new List<string> ();
foreach (TypeDefinition type in assembly.MainModule.Types) {
foreach (MethodDefinition method in type.Methods) {
if (!method.IsPInvokeImpl)
continue;

string dll = method.PInvokeInfo.Module.Name;
if (!dlls.Contains (dll) && !unreferenced.Contains (dll))
unreferenced.Add (dll);
}
}

return unreferenced;
}
}
}

8 comments:

knocte said...

Why not doing this as a Gendarme rule?

梁爵 said...

2020.01.02酒店兼差正面臨持續下滑壓力,酒店工作分析,明年的酒店各大股東投資和酒店上班酒店小姐應徵率表現預估都不佳,以消費拉動經濟較為樂觀,但也充滿挑戰;2020年的大學生/上班族酒店打工壓力比今年更大,經濟成長率可能跌破44%,開啟「框出接S(性服務)」時代。知名酒店經紀指出,專家梁小尊1日在中國上海發表酒店兼職對中共經濟展望的看法。他表示,美「中」貿易戰就算能達成協議,衝突仍可能長期化。他也點出,「中」方以美元計價的出口額,今年1月中罕見出現負成長,夜總會酒店業者年減36%。

梁爵 said...

2020.03.10酒店工作深夜心聲:走到這一步是不是覺得有些無奈呢?"曾經"很多人跟妳心情是一樣的~!!
"現在"也有很多人和妳的狀況一樣~!!假設妳目前沒有男友...妳大概會因為經濟問題考量而入行了!!
首先建議妳...問自己一個問題吧~!!~這段感情...有沒有未來~?
靜下來想清楚的話...妳才考慮要不要去酒店上班~
PS:因為男友一定早晚會知道(如日夜顛倒 其他男生來電 收入增加 有時全身酒味...等)如果他有能力...妳何需如此??他知道了又不能改變什麼...除非他有能力改變妳的困境吧!!如果他能且有能力...那麼在決定去以前...跟他好好溝通一下比較妥當~!!或許他可以幫妳的!!夜生活表面看來光鮮亮麗...其實很多心酸苦楚是只有當事人自己清楚的!在這行妳更可以看清楚所謂"真實的人性"~!!
酒店打工其實那也不是不好...還是有些人在裡面得到成長的...即使是跌跌撞撞的長大!怎麼不讓自己被環境影響太深,怎麼在那種特殊環境中保護自己,妳自己要有一點最起碼的準備...不管是心理上還是生理上~!!還是建議妳把心態先調整好...然後才去投入這環境工作。
否則...有選擇...就要去負責!!。以後如果真的要去上班了...那請專心投入"賺錢"這檔事吧!!感情的話...工作以前的...可能都會失去!工作以後的...保證沒一個是認真對妳的~!!儘早賺夠所需要的錢...早日離開比較實在!!

Anonymous said...

的事情包括: 挑選適合的店家類型(禮服店、制服店、便服店、鋼琴酒吧..等) 洽談適當的上班時段(一天工作幾小時?一個禮拜工作幾天?午場或晚場?) 上班時所需酒店當日領造型包裝(衣服?髮型?化妝?) 薪資需求及後續相關(薪資怎麼算?多少?多久領?怎麼領?如何調薪?) 上班後相關問題處理(排假?下檔?請病假?扣薪?) 其他突發狀況   (臨時休檔?無法參加開會?不習慣想換店?)重點是妳的經紀公司會不會幫妳爭取福利?!能否幫妳找到好的店家?!能不能解決問題?!酒店本是灰色地帶,來這裡討生活的人,都只有一個目標,就是解決經濟酒店薪水壓力或過更好的生活。16.這樣的經紀公司要注意!若有以下情況,是必須考慮換經紀人,因為已經不適任,千萬別委屈自己!和經紀人有不正常的財務牽扯。常找不到人,電話也不接 。只有領錢才出現,其他時間常搞失蹤。大小事情都自行處理,經紀人老是後知後覺,好像事不關己!節數錢有誤,常不清不楚,發薪日總比別人慢!不管男或女經紀人,常和自家姐妹搞曖昧,只會對特定人好,俗稱「老"X"經紀」!於姐妹上班時間,常在外飲酒作樂,不管姐妹工作狀況。好賭成性、負債累累!或開口向姐妹借調錢,這都是「跑路」的前兆!只會當店家的傳聲筒,只替店家講話,不會幫姐妹爭取福利!不會幫姐妹做規劃分析,只會亂帶不酒店公關藝名適合的店家,把姐妹當犧牲品!太多元化的經營(如放款、土地仲介等非經紀本業),不僅無法專注公關,且會容易衍生許多複雜的是非。經紀公司和特定店家簽約,只帶妳去特定店家,這樣只會局限妳的發展空間。17.酒店經紀公司和酒店公關的面試流程可在官網或部落格留言。加入通訊或社群軟體。透過文字線上詳談。通話溝通。約在公共場所(如麥當勞) 。碰面對談細節(要求對方提出負面因素,如會扣錢的事項有哪些?而不是只講八大的美好!)討論自己的權益。(如薪資計算、領薪日..等)18.應徵前的條件準備(身高、體重、外表、酒量、基本應對等)一定要年滿18歲,對於要求應徵者必須成年,也代表業者酒店上班心得會遵守各項法規。高矮不是問題,主要是身材比例不過胖。以禮、便服店的標準來說,中、高標準為身高減115~120,如身高165公分,【高標準】體重為45公斤。八大畢竟不是選美比賽,且客人對於環肥燕瘦各有所愛,但想辦法讓自己更好,才是增加節數最有效的方式。妳選擇

梁爵 said...

2020.05.04酒店工作因為一名酒店S女公關的確診,造成全台酒店、舞廳無限期停業,收入靠酒客的酒店上班坐檯小姐頓失每月數十萬元的收入,紛紛開始找副業度過難關。據八大行業透露,不少酒店小姐轉行當foodpanda(空腹熊貓)、Uber Eats的外送員,因收入不夠支出,還會再兼職當傳播妹,上月底有酒客到台中市KTV時,找熟識、現在酒店PT失業的酒店小姐外送到包廂坐檯,該酒店打工小姐進包廂時,還穿著熊貓制服,也讓酒客莞爾,小姐致歉兼撒嬌「工作難找啊!」知名八大行業酒店經記梁曉尊說,他旗下有130多個坐檯小姐,這次「被停業」後,小姐急著找副業拚經濟,有人當起超商店員,有人花了兩千多元跟熊貓買了相關的制服、設備,兼差當起美食外送員,還有人變成網拍業者,忙著拿貨,上網拍賣,擔心一個不小心就喝西北風,但也有人乾脆當放長假休息,不過每天都會有小姐打電話詢問「老闆,什麼時候要開工?」。梁小尊說,這次停業對酒店業造成的影響真的很大,他有個小姐是高雄人,年紀才20多歲,2年前才到台中工作,當酒店小姐的收入不錯,每個月都有10幾、20幾萬,今年初才剛買千萬的房產,準備在台中定居當台中人,每月要繳的房貸要5萬多元,現在突然沒工作,只能趕快找兼差,期待政府趕快想開,宣布讓酒店等特種行業復業。酒店經紀梁小尊/梁曉尊說,現在不少酒店的坐檯小姐都轉行當傳播妹,外送到各個知名KTV,因為此次政府宣布停業的是酒店、舞廳跟有男女陪伺的視聽業,一般的KTV不受到影響,不過酒客沒了酒店,還是要喝酒,有包廂的KTV就變成最好的去處。梁曉尊/梁小尊說:上月底才跟朋友去台中市一家KTV唱歌,因為知道認識的酒店小姐沒工作,打電話聯絡小姐到包廂坐檯,小姐出現在包廂時,他跟朋友看到都笑出來,因為小姐已經兼差當起熊貓外送,沒空換上漂亮的禮服就衝到KTV,擔心客人找別的小姐,所以連衣服都不換,趕緊衝到包廂內上工。

梁爵 said...

2020.05.12酒店、舞廳解禁酒店小姐的基本介紹跟工作內容開放有望!新冠肺炎台灣疫情緩和、穩定控制,中央流行疫情指揮中心昨日我在酒店上班的日子宣布,目前暫停營業的酒店、舞廳等酒店小姐一定有S?業者,在符合防疫安全條件下,八大行業可開放營業,且不受室內100人、室外500人人數限制。巧合的是,今日職場須知 【酒店PT 】剛好是酒店、舞廳停業滿月,指揮中心此話一出,相關酒店打工行業人士都很期待。記者實訪一名在北市中山區酒店工作的女公關軒軒,她表示若酒店真解禁,實質上生意一定會爆好,因為台商、業者都「忍很久了」。軒軒說,她所服務的地方為私人招待所,受酒店禁令也暫時歇業至今,這一個月來她都沒進店裡上班,與其他公關們大多轉戰KTV、卡拉OK或是飯局模式;而客層方面,多為熟客與幹部所介紹的友善客人,故在安危顧慮上較放心;但即便如此。收入仍大受影響,跟之前比少了六成,不過因她沒有家計負擔,故這段時間她也當做休息,更規畫了東部旅遊。而對疫情這段時間的感想?軒軒說,其實酒店業並不是四月時有酒店公關確診才受影響,而是台灣確診1月下旬有確診者後,2、3月生意就明顯下滑,因為「有錢人超怕死!」也擔心來消費後確診,很難對親友交代,故2月起收入就已下滑。軒軒也說,而酒店業是「連動」、最能反應「台灣經濟」的產業。經濟好時,來消費、甚至談生意的客人就多;而一蕭條,酒店、幹部、旗下小姐收入銳減,連樓下賣花、賣香腸、一整條賣衣物、精品的店家都受影響,是一層接一層環環相扣的。軒軒跟記者分享一個特別觀點,就是酒店停業這一個月時間,她的總收入雖大減,但是「客單」(顧客單筆消費)收入卻超高。她解釋,因為這段時間都轉戰如錢櫃KTV、卡拉OK等方式,客人消費、開酒遠比在酒店時便宜、小費也多外,收入部分因不用透過酒店營銷、幹部等關卡,少了中間抽成,故費用都是「實拿」,也算是這段時間的特別之處。

梁爵 said...

2020.06.01酒店小姐的基本介紹跟工作內容背滿學貸信貸,優渥人生對妳而言好遙遠?快來哈囉舒壓,我在酒店上班的日子給自己一個機會,不敢來酒店上班-酒店打工的原因成就日收破萬高薪人生! 工作環境單純,安全更無憂。想脫貧?這次好機會別錯過。酒店上班-酒店兼職-兼差如何達成人生的第一桶金免繳保證金/免證件/不綁約。薪資超透明 月入10萬不是夢。服務: 安全面試, 最佳顧問, 單純保證, 安全呵護。一、酒店兼差不是一個複雜的工作環境?酒店小姐的收入有多少?有急用可以借支嗎? 職場須知 【酒店PT 】以一個〝單純〞陪酒的酒店小姐,一天的收入約3000~7000(不含小費)除非有〝額外〞的服務,一天可以領。酒店小姐藝名用疊字感覺活潑易記
雙雙 寶寶 安安 依依 佩佩 菲菲 婷婷 飄飄 麗麗
蓉蓉 師師 小小 圓圓 蕊蕊 水水 珊珊 堯堯 嘉嘉
冰冰 霜霜 柔柔 寧寧 薇薇 佳佳 露露 娜娜 暄暄
茶茶 琪琪 巧巧 妞妞 玲玲 妍妍 晨晨 莎莎 芳芳
點點 慧慧 真真 嬋嬋 珍珍 佳佳 婷婷 芊芊 多多
而且只要做酒店工作,這些都是無法避免的「有人覺得做禮服店就賺很多,又不會出場,我都覺得是幻想。你不是模特兒等級的,哪間禮服店收?傳播工作與酒店工作有什麼不同傳播小姐與酒店小姐的工作內容其實大同小異,但在工作內容以外卻有許多的大不同,我來為各位做出
便服店: #王牌酒店 #香閣里拉酒店 #麗園酒店 #龍亨酒店 #香水酒店 #金典酒店 #威晶酒店 #威士登酒店。
禮服店: #麗緻忠孝酒店 #麗緻敦南酒店 #維多立亞酒店 #百達妃麗酒店 #萬豪酒店 #金荷酒店 #大富豪酒店 #絕色酒店。
制服店:#麗都 #淘寶酒店 #金碧輝煌酒店 #金昌酒店 #金聰酒店 #君悅酒店 #盛世酒店 #奧斯卡酒店 #龍昇酒店 #龍昌酒店 #百富酒店 #台北東區酒店兼職。
2者不同的差異性,給各位做個酒店工作內容: 桌面服務,一般人通常會想偏,其實桌面服務
是很簡單,也很單純的一件事。桌面服務有以下幾個要點: 看了很多篇酒店文,好像很少有男生寫經驗? 我是酒店少爺,在滿18歲那天開始上班雖然不是第一次進去酒店,不過以工作人員的身份倒是頭一次,有一些沒有接觸過酒店的姐妹來找我應徵酒店小姐的時候,我們談的都很融洽,實際上她們也很需要來酒店上班賺錢,可是後來卻沒有來上班,不是沒有休假?那個是有簽約的對吧?

梁爵 said...

2020.06.19酒店小姐的基本介紹跟工作內容今年4月國內出現首例酒店女公關確診武漢肺炎,為防堵疫情,中央流行疫情指揮中心宣布,自4月9日起,全國酒店、舞廳停止營業,直到5月中疫情趨緩,各縣市才陸續解除禁令,但在我在酒店上班的日子八大行業歇業期間不敢來酒店上班-酒店打工的原因,淋病感染卻意外激增,5月底確診數竟比過去3年同期平均數上升逾8成,醫師推測酒店上班-酒店兼職-兼差如何達成人生的第一桶金,這與性交易轉往地下化有關。根據疾病管制署酒店兼差不是一個複雜的工作環境?傳染病統計資料,性傳染病中淋病感染者近期顯著上升,比較2017、2018、2019與今年1月到6月初數據職場須知 【酒店PT 】,發現2017年在這段時間累計有2166例,2018年同期則有1903例,2019年同期為1875人確診,但2020年同期則有2574人確診,比前3年都高。再細看國內八大行業禁令與淋病成長趨勢,可發現淋病確診在八大行業4月9日喊卡當周有109例,到了5月第2周升高至135例,接下來有些微下降,但到5月最後1周又飆到142例,創下今年單周最高紀錄,和前3年同期平均數相較,更足足暴漲86.6%,且到了下一周、即6月第一周,仍有133 例,顯示疫情仍在高峰。至於同樣是性病的梅毒,確診個案則未明顯增加。針對八大行業禁令與淋病感染增加的關係,林口長庚醫院男性學及婦女泌尿科主任陳煜說,應與消費生態與客群產生變化有關,因酒店的消費較高,帶出場的門檻也高,但酒店歇業後,小姐還是要生活,只好轉入地下,進行性交易的頻率可能提高,才導致淋病增加。陳煜解釋,過去有研究發現,私下進行性交易的客群,以中下層、低消費的族群較多,而這些人使用保險套的情形也較不普遍,發生性病的風險偏高。淋病感染激增,梅毒疫情卻沒有擴大,對此陳煜認為,染淋症狀明顯,常有尿道灼熱感,且性器會流出黃綠色濃液,而梅毒感染初期可能僅有輕微的皰疹,較不容易發現,所以才有兩種性病趨勢大不同的特殊現象。疾管署副署長莊人祥說,近期確實發現淋病確診明顯增加,從年齡層分析,以20歲到29歲增幅最大,比去年1月至5月增逾300例;30歲到39歲也增約百例,且男多於女,增加個案以六都為主;至於與八大行業禁令的關係,他則說,詳細原因仍待疾管署進行相關調查。

Hit Counter