開発者の備忘

「起」と「結」しか書かないので詳細はご自分でお調べください

【C++】Visual Studio CodeでC++を実行しようとするとエラーが発生

なにをしたか

C++のコードをVisual Studio Codeで実行しようとした

なにが起きたか

The preLaunchTask 'C/C++:gcc.exe build active file' terminated with exit code -1.
上記エラーが発生

原因

実行時にgccコンパイルしようとしていたため
C++はg++でコンパイルしないとダメ

どのコンパイラを使用するかはワークフォルダに作成される「.vscode」フォルダ内の「tasks.json」に記述されてる

「command」タグにコンパイラが指定されてる
今は「C:\\pg\\mingw64\\bin\\gcc.exe」が設定されてるので「C:\\pg\\mingw64\\bin\\g++.exe」に変更する

【WordPress:Luxeritas】ヘッダーナビをスクロール固定にしたいのにヘッダーの上の帯状メニューが固定になる

題のとおり



ヘッダーナビ(グローバルメニュー)の設定でスクロール固定にしてるのに
なぜか固定にならない



そのくせヘッダー上の帯状メニューはスクロール固定になってる



原因は単純で、帯状メニューがスクロール固定になってたから
ヘッダーナビが固定にならなかっただけ


どうやら両方固定にすることはできないらしい

【WordPress:Luxeritas】スマホから見たときにサイドバーを消す

ルクセリタスを使用するとスマホで見たときサイドバーのメニューが一番下に表示される

なんか見栄え悪いしアンテナサイトたくさん登録するとすごいことになるので消したい

以下のサイトを参考にしました。
trend-tracer.com


上記サイトには1行消して3行追加しろって書いてあるけどそのままコピペしても動かないよ
3行を以下に変えるといいよ

<?php if (!is_mobile()) :?>
<?php thk_call_sidebar(); ?>
<?php endif; ?>

これでスマホ画面からサイドバーが消える
だけどこれだけどまだ問題がある





ルクセリタスはスマホとかタブレットで表示すると
ナビゲーションバーを豪華にすることができる


こんな感じ↓
f:id:phen1208:20191021202323p:plain



真ん中らへんにあるメニューのサイドバーを選択すると
サイドバーが横からにょきにょき生えてくるんだけど、
さっきの3行追加すると出てこなくなっちゃう


しかも画面がスクロールしかできなくなる

進行不能系の重大なバグなのでヤバいやつです

でも未熟な僕にはどうすることもできなかった


なのでメニューからサイドバーを消しました


子テーマの編集→Headタグ(add-header.php)に以下を追加

<script>
jQuery(function($){
        /*ナビゲーションメニューのサイドバーボタンを非表示*/
        $('#gnavi ul.mobile-nav li.mob-side').css('display','none');
});</script>


すると

f:id:phen1208:20191021203350p:plain



消えました



ただ、これサイドバーを表示してからJQueryで消すっていう
すごく回りくどいやり方なんですよねえ

根本的な解決策にはなってないです



なので豪華メニューバーをやめました
そうすればページの下にサイドバー出ないし
メニューバーにもサイドバーでないので


当分はこれで行く

【WordPress】ブラウザのアドレスバーの色を変える

ヘッダー(header.php)のheadタグに以下を追加する

<head>

        ~ 中略 ~

        <meta name="theme-color" content="#xxxxxx"  />
</head>


「#xxxxxx」にはお好きな色を設定する


色は以下を参考に↓
www.flatuicolorpicker.com

【SQL】INNER JOINとLEFT JOIN

INNER JOINとLEFT JOINの使い方を簡単に説明
RIGHT JOINはほぼ使わないので説明しません。


JOINはテーブル同士を結合するもの。
結合元と結合先のテーブルに存在する同じ項目(キー項目)が
一致するレコード同士をくっつける。
INNERとLEFTはくっつけ方が異なる。


内部だ外部だは今は考えなくていいです。
気になる人だけ調べてください


実際に手を動かしたい人は以下のテーブルを作ってください

--テーブル作成
CREATE TABLE A(
	ID VARCHAR(3) NOT NULL
	,NAME VARCHAR(10) NOT NULL
	)
CREATE TABLE B(
	ID VARCHAR(3) NOT NULL
	,NAME VARCHAR(10) NOT NULL

--データ挿入
INSERT INTO A
VALUES ('001', 'ONE'), ('002', 'TWO'), ('003', 'THREE')
INSERT INTO B
VALUES ('003', 'THREE'), ('004', 'FOUR'), ('005', 'FIVE')

INNER JOIN

まずはINNER JOINから理解したほうがLEFT JOINを理解しやすいと思います。


INNER JOINはキー項目が一致するレコードのみくっつけて表示します。

SELECT * FROM A

SELECT * FROM B

SELECT * FROM A AS A
INNER JOIN B AS B
ON A.ID = B.ID

このクエリを実行すると以下の実行結果となります。

f:id:phen1208:20190829233739p:plain
INNER JOIN実行結果


ON句で指定した互いのテーブルの項目「ID」が一致しているレコードのみ結合されました。
結果は一致したレコードのみ出力されます。
これがINNER JOINです。

LEFT JOIN

LEFT JOINもINNER JOINと同様、一致したレコードが結合されて出力されます。
異なる点は、キー項目が一致しない結合元テーブルのレコードも出力される点です。

SELECT * FROM A

SELECT * FROM B

SELECT * FROM A AS A
LEFT JOIN B AS B
ON A.ID = B.ID

SELECT * FROM B AS B
LEFT JOIN A AS A
ON A.ID = B.ID


クエリ実行結果が以下となります。

f:id:phen1208:20190829234434p:plain
LEFT JOIN実行結果


IDが一致しないレコードはNULLの状態で結合元テーブルのレコードが
すべて出力されているのがおわかりでしょうか。

まとめ

キー項目が一致するレコードのみ出力するのがINNER JOIN。
一致しようがしまいが、結合元テーブルのレコードをすべて出力するのがLEFT JOIN。

【SQL】データベース作成コマンド

テスト用にデータベースを作ろうと思ったけどコマンドを忘れてしまうので備忘

やりかた

まず、現在のデータベース一覧

f:id:phen1208:20190821232421p:plain
DB作成前



以下のSQLを実行

CREATE DATABASE TEST


すると、「TEST」というデータベースが作成される

f:id:phen1208:20190821232635p:plain
DB作成後


これで完了

【C#】 Shell32の参照設定方法

やりかた

①ソリューションエクスプローラーの対象プロジェクトの中の[参照]の上で右クリック
②[参照の追加]を選択
③[COM]→[Microsoft Shell Controls And Automation]にチェックを入れてOK


f:id:phen1208:20190526005626p:plain
参照マネージャー



これでShell32が使える。